Namespaces
Variants
Actions

判断应用程序的路径

Jump to: navigation, search
文章信息

兼容于
平台: S60 2nd Edition, S60 3rd Edition

文章
翻译:
huwell
最后由 hamishwillee 在 19 Sep 2012 编辑
  • 详细描述

最终用户可以选择将程序安装到C盘或E盘。程序有时需要知道自己的安装位置。而这个要根据S60平台的版本来决定判断方式。

  • 解决方案

S60第二版

在S60第二版上,使用aknutils.h方法的CompleteWithAppPath( TDes& aFileName )方法。所有的组成部分都在给定的描述符中(盘符,路径和文件名,以及后缀),通过返回值返回,任何缺少的组成部分(路径和盘符)都从程序路径中获取(<drive>:\system\apps\<application_name> directory)。

#include <aknutils.h>
 
// Insert the full application path into the file name (fileName)
TFileName fullPath(fileName);
CompleteWithAppPath(fullPath); // from aknutils.h


  • S60第三版

从S60第三版之后,所有的程序二进制文件(EXE和DLL文件)都存放在\sys\bin目录下面,要访问这些目录,程序需要AllFiles能力。资源和数据不要存放在此目录下。相反程序有自己目录\private\<SID>\,这里SID为安全标识符。将每个进程区别开来。程序使用私有目录来存放.ini,.mbm,.rsc,和数据文件等,其他程序无法访问这些数据,除非拥有AllFiles能力。


CompleteWithAppPath()将返回\sys\bin作为程序第三版程序安装路径。要访问存放在私有目录下的程序数据,就需要另一个方法来完成:

TFileName appPath;
TBuf<2> appDrive;
 
// Returns private path of this application
// in following format: \Private\<SID of the application>\
// (does not contain drive specification).

iEikonEnv->FsSession().PrivatePath( appPath );
 
// Extract drive letter into appDrive
appDrive.Copy(iEikonEnv->EikAppUi()->Application()->AppFullName().Left(2));
 
// Insert drive letter into path
appPath.Insert(0, appDrive);


   
This page was last modified on 19 September 2012, at 03:14.
198 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved