【问题标题】:WinRT Create File at Customized PathWinRT 在自定义路径创建文件
【发布时间】:2014-09-06 02:15:23
【问题描述】:

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

我应该如何更改代码才能做到这一点?谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    在这个包文件夹中,您有两个主要的文件夹来存储数据:LocalStateRoamingState。顾名思义:前者是将数据存储在本地,而后者将尽可能同步其内容(根据您定义的规则)。

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

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

    【讨论】:

    • 谢谢,还有一个关于此的后续问题。如果我想在本地文件夹中指定一个子文件夹怎么办?我应该如何构建 StorageFolder^ ?
    • 您可以使用问题中的代码在本地文件夹中创建自己的文件夹:ApplicationData::Current->LocalFolder->CreateFolderAsync("myfolder");(我不懂 C++,所以它可能不是确切的语法)
    猜你喜欢
    • 2014-07-26
    • 1970-01-01
    • 2023-04-09
    • 2017-06-19
    • 2016-03-01
    • 2022-11-30
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    相关资源
    最近更新 更多