【发布时间】:2017-02-08 10:37:42
【问题描述】:
我无法让 C++ 使用“ms-appdata:///roaming/”调用来检索文件
我目前正在用cpp写一个中文输入法编辑器,打包成dll。
因此,当我调用 ifstream 来读取我的设置文件时,文件权限受到任何处于活动状态的应用程序的限制,例如当通用 Windows 程序被沙盒化到 AppData 中自己的文件夹时,甚至无法读取其他文件,更不用说给他们写信了。我目前的困难是首先在该沙箱中定位文件(特别是设置文件)。
例如,这一行:
WCHAR* FileName2 = L"C:/Users/Dog/AppData/Local/Packages/Facebook.317180B0BB486_8xx8rvfyw5nnt/RoamingState/Settings.txt";
与
配合得很好std::ifstream settingsFile;
settingsFile.open(FileName2, std::ios::in ); //this reading is successful for hard-coded path
settingsFile.get(myChar);
settingsFile.close();
当 facebook messenger 是活动程序时,但此行不是:
WCHAR* FileName2 = L"ms-appdata:///roaming/Settings.txt";
尽管我无法对每个 UserProfile 和 UWP 目录的路径进行硬编码。
有谁知道我做错了什么?我在 Windows 10 上使用 Visual Studio 2015 社区,并且有一个用于 x86 和 x64 EXE 的通用设置文件,并且我计划编写一个服务,以便在该文件更改时将该设置文件复制到每个 UWP 的 RoamingState 文件夹。
【问题讨论】:
标签: c++ dll win-universal-app uwp appdata