我正在编写一些代码,以标准方式从Windows 8应用程序创建文件,代码如下所示:
using namespace Windows::Storage;
StorageFolder^ folder = KnownFolders::DocumentsLibrary;
String ^filename = ref new String(L"file.txt");
auto createFile = folder->CreateFileAsync(filename, CreationCollisionOption::ReplaceExisting);
concurrency::create_task(createFile).wait;
现在我没有使用DocumentsLibrary
,而是想将这个文件写入自定义文件路径,例如:
C:\Users\<username>\AppData\Local\ExampleApp\ExampleFolder
我应该如何更改代码才能执行此操作?谢谢!
答案 0 :(得分:1)
WinRT只能访问几个文件夹。您有一些标准库,如图片,音乐等(文档需要提升权限),您可以在\AppData\Local\Packages\yourpackage
下找到应用程序数据文件夹。
在此软件包文件夹中,您有两个用于存储数据的主文件夹:LocalState
和RoamingState
。正如名称所表达的那样:前者是在本地存储数据,而后者会尽可能地同步其内容(根据您定义的规则)。
您可以使用等效于Windows.Storage.ApplicationData.Current.LocalFolder
和Windows.Storage.ApplicationData.Current.RoamingFolder
的C ++来访问这些文件夹。
你可以做的是通过FilePicker
请求显式访问,但这会提示用户一个他应该自己定位目录的窗口。