File locations

This topic gives the location for different file types.

Pre-Symbian platform v9.0

Application program files must be located in directories with the form \system\apps\<program>\. Initialisation and configuration files should be in the same directory, or where the application is in ROM, in the equivalent directory on a writable drive.

Document files can be located in any directory except \system\, and may be given any name: the system will not alter the capitalisation of that name, and will not attempt to add or remove any extension.

The application architecture does not dictate the requirements for all files, or even all file stores. For instance, an e-mail application is not document based. An e-mail subsystem would store its messages in a directory structure using special e-mail policies to implement inbox, outbox and folders. Normally, this folder would be in a \system\ directory.

Symbian platform v9.0 and beyond

The following table gives the location for different file types.

Location Example file types Description
  • On the emulator (default):

    • epoc32\release\winscw\udeb\

    • epoc32\release\winscw\urel\

    On the emulator, e.g. for text notifiers:

    • \sys\bin\tnotifiers

  • On the device:

    \sys\bin\

.exe, .app,

.dll, .ani,

.ctl, .fep,

.mdl, .csy,

.ldd, .pdd,

.prt,

.ECOMIIC, .PLUGIN

  • Location of all binaries

  • The OS will refuse to load any binary not in \sys\bin\

  • Code without AllFiles (or TCB) capability will never be able to read (or write) anything under \sys\

  • Note that for the emulator when PlatSecEnforceSysBin is enabled (in the epoc.ini file) executables found under \system will not be able to be loaded

\private\<process SID>\

.doc, .txt,

.xml, .dat,

.ini, .mbm,

.rsc

  • Location of all private data files (e.g. if the file is to be accessed only by the application itself)

  • The directory name under \private is determined by the SecureId (SID) of the process. If a SID is not specified, the UID3 provided in the mmp file is used

  • Under the \private directory, programs without the AllFiles capability will only ever be able to see their own directory

  • Applications on the emulator, or built into the ROM must provide registration files in:

    • \private\10003a3f\apps\

  • Applications installed via Software Install must provide registration files in:

    • \private\10003a3f\import\apps\

<appname>_reg.rsc

  • The private system directory for an application's registration file

  • The directory must always be on the same drive as the application

  • These paths are true for both the emulator and target device

\resource\apps\

.rsc, .mbm

  • Read access is allowed by all

  • Write access only by processes with AllFiles capability

\resource\plugins\

<dllname>.rsc

  • Specifically for ECom registration resource files for ECom plugins

  • Read access is allowed by all

Central Repository API

\private\<process sid>\

.txt

  • If the file is read/write-only, and access to it needs controlling through capabilities, then use the Central Repository API, not a file at all.