当前位置: 代码迷 >> Symbian >> 关于安装程序私有途径的一些疑问
  详细解决方案

关于安装程序私有途径的一些疑问

热度:427   发布时间:2016-04-25 02:28:40.0
关于安装程序私有路径的一些疑问
小弟的一个项目中需要调用安装程序的私有路径的内容,在模拟器上调用私有路径就会立即关闭,cmd编译后,再run显示application closed kern-exec 3.以下是我自己的一些分析:
TInt res = CEikonEnv::Static()->FsSession().PrivatePath(iPrivatePath);
iPrivatePath---------------------\Private\e8df4c23
C:\S60\devices\S60_3rd_FP1\Epoc32\winscw\c\private\e8df4c23


CEikonEnv::Static()->EikAppUi()->Application()->AppFullName()--------------z:\sys\bin\**_0xE8DF4c23.exe
**_0xE8DF4c23.exe----------------C:\S60\devices\S60_3rd_FP1\Epoc32\release\winscw\udeb

RFs.GetDir()-----------------从C:\S60\devices\S60_3rd_FP1\Epoc32\winscw\开始

TFileName filename;
CompleteWithAppPath(filename);   //filename------------------------z:\sys\bin

想处理z:\private\e8df4c23文件出错
RFs.GetDir(_L("z:\\private\\e8df4c23"),*,*,*);
感觉好像在模拟器上没生成z:\private\e8df4c23路径,还望各位高人指点迷津,先行谢过!
------解决方案--------------------
那些资源文件都是放在C:\S60\devices\S60_3rd_FP1\Epoc32\winscw\c\private\e8df4c23 这里的
不是z盘这里的
如何拿到这个private path
这里有个帖子
http://wiki.forum.nokia.com/index.php/How_to_get_private_directory
------解决方案--------------------
通过CompleteWithAppPath方法获取程序安装路径时,只有模拟器上才会返回Z:,在真机会上就会返回C:\\或者E:\\,所以为了模拟器和真机路径完全一致,在程序中可按如下方法使用:

_LIT(KMyPrivatePath,"\\private\\e8df4c23\\"

TFileName filename(KMyPrivatePath); 
#ifdef __WINSCW__
filename.Insert(0,_L("C:"));
#else
CompleteWithAppPath(filename);
#endfi

在模拟器调试时,就操作C:\S60\devices\S60_3rd_FP1\Epoc32\winscw\c\private\e8df4c23\路径;在真机使用时,则会根据程序的安装路径自动对应到C:\private\或者E:\private\下
  相关解决方案