WinRT在自定义路径上创建文件

时间:2014-07-15 18:40:16

标签: c++ windows-runtime windows-store-apps c++-cx

我正在编写一些代码,以标准方式从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

我应该如何更改代码才能执行此操作?谢谢!

1 个答案:

答案 0 :(得分:1)

WinRT只能访问几个文件夹。您有一些标准库,如图片,音乐等(文档需要提升权限),您可以在\AppData\Local\Packages\yourpackage下找到应用程序数据文件夹。

在此软件包文件夹中,您有两个用于存储数据的主文件夹:LocalStateRoamingState。正如名称所表达的那样:前者是在本地存储数据,而后者会尽可能地同步其内容(根据您定义的规则)。

您可以使用等效于Windows.Storage.ApplicationData.Current.LocalFolderWindows.Storage.ApplicationData.Current.RoamingFolder的C ++来访问这些文件夹。

你可以做的是通过FilePicker请求显式访问,但这会提示用户一个他应该自己定位目录的窗口。