cards). It supports the creation and removal of directories and files, IO
operations on files, listing directory contents and getting file information.
The two most important classes are:
FileSystemRegistry : a central registry for mounted roots and for
registering file-system listeners interested in receiving notifications on
the addition and removal of file systems at run time
FileConnection : an interface used to access files and directories
on the device. It extends the Generic Connection Framework (GCF)
Connection interface and provides the majority of the optional
package functionality. Each FileConnection corresponds to a
single file or directory at a time. Some methods can be used on both
files or directories (e.g., file attributes), while other methods are only
usable with either a file or a directory.
The Symbian OS File API has a few key classes:
The RFs class encapsulates a file server session and provides file
system manipulation functions, such as creating, deleting, moving
and renaming files and directories; manipulating file and directory
attributes; and requesting file system change notifications.
The RFile class encapsulates a file that can be opened, created, or
Other classes, which are less relevant to a discussion of JSR integration,
encapsulate drives and volumes, efficient large-scale file management,
file searching and directory scanning.
Before we discuss the integration of the JSR-75 FileConnection to the
Symbian OS file handling service, we should clarify the reason why it
was chosen to be the first example.
The integration of the API was relatively straightforward since the native
RFs and RFile classes provide methods that match the FileConnection
API sufficiently. This is an example of an integration that is as close
as possible to the one-to-one integration type. However, even JSR-75
FileConnection is not at the extreme end of the one-to-one integration
type and we discuss that as well.
We now present a few examples of how FileConnection methods map
to native functionality. FileConnection.create() creates a new