Porting with Zsh

Zsh has no platform security capabilities, that is, it cannot directly access the private directories on a device. However, you can make use of two library functions from the static library (copydatafile.lib) to copy data between public and private directories:

  • static TInt CopyDataFile::CopyToPrivateL(TDesC& aFileName): This function copies data from the public directory (c:\shellpub\<SID> where SID refers to the Secure ID of the application) to the private directory.

  • static TInt CopyDataFile::CopyToPublicL(TDesC& aFileName): This function copies data from the private directory to the public directory (c:\shellpub\<SID> ).

These library functions can be linked to External Programs to copy the data under a private directory to and from a public directory, c:\shellpub. Note that these functions are not part of Zsh; they are in a separate library and it is not mandatory to use them.

Using these library functions, here is one way of copying data, so that it can be accessed with Zsh:

  1. To copy the files from public directory c:\shellpub\<SID> to \private\<SID>, call the CopyToPrivateL() function while you start the application.

  2. As the c:\shellpub directory is public, you can view or modify files in it from Zsh.

  3. Each application replicates its directory structure under c:\shellpub starting with <SID> so that they do not overwrite private files of the same name belonging to other applications.

  4. To copy the files from \private\<SID> to a public directory c:\shellpub\<SID>, call the CopyToPublicL() function while you exit the application.