Archived:Making your Symbian C++ applications run on S60 devices from all manufacturers
Published at www.forum.nokia.com on July 29, 2004.
All S60 devices compliant with S60 1st Edition, including devices from licensees, use "Nokia" as the content directory path name (e.g., C:\Nokia\Images). Thus, S60 1st Edition does not provide any APIs to query the directory paths. However, even with S60 1st Edition it is wise not to hard code the path names in multiple places in the code, in order to ease future portability.
S60 2nd Edition will no longer force licensees to use the Nokia path name. Instead, each licensee can decide to give a new path name for the content directory for its devices, for example Siemens and Sendo might name a C:\Siemens\ and C:\Sendo\ path, respectively, for their S60 devices.
S60 2nd Edition provides the PathInfo class to query correct paths defined in S60 devices, hence, developers should use the PathInfo class's methods to retrieve the desired path when accessing the content stored under that folder. Developers should no longer use hard-coded directory paths in their applications in order to improve compatibility, and thus, to sustain the applications to run on most S60 devices, regardless of the device manufacturers.
The root directories/drive names:
The key content directories:
PathInfo::ImagesPath() - This directory is used to store images by the Images application.
PathInfo::InstallsPath() - This directory stores SIS files that are to be installed on the device.
PathInfo::SoundsPath() - This directory stores sounds files used for event notifications, such as ring tones.
#include <PathInfo.h> TFileName path = PathInfo::PhoneMemoryRootPath(); path.Append( PathInfo::ImagesPath() ); // 'path' now contains images path in C:, e.g. C:\Nokia\Images
When designing applications to run on all S60 devices, developers must use the Nokia path name to target devices compliant with S60 1st Edition, but should use the PathInfo class to target devices compliant with S60 2nd Edition.