gpt4 book ai didi

c# - 使用 ms-appdata 访问 StorageFolder

转载 作者:太空狗 更新时间:2023-10-30 01:19:55 26 4
gpt4 key购买 nike

我有一个应用程序,我必须在其中存储和使用文件夹和文件的绝对 路径。我有一个非常简单的问题。当我像这样存储文件夹的路径:“ms-appdata:///local/my_folder”并尝试从此路径获取 StorageFolder 时,它会抛出 FileNotFoundException。 为什么抛出这个异常?

AFAIK“ms-appdata:///local/my_folder”等于“C:\Data\Users\DefApps\AppData\{2F102375-2740-441C-BF2F-808608F47DA1}\Local\my_folder”。后一个字符串由 StorageFolder 的 GetFolderFromPathAsync 静态方法接受。 如何从前者创建后者 Uri,反之亦然?

编辑:澄清问题。

最佳答案

静态方法 GetFolderFromPathAsync 使用 :\语法。 ms-appdata:///不是路径名,而是 URI 方案,旨在与 Windows.Storage.StorageFile.GetFileFromApplicationUriAsync 方法一起使用。不幸的是,文件夹没有等效的方法。

这给您留下了几个选择。一种是您可以在该文件夹中存储一个简单的引用文件,使用 GetFileFromApplicationUriAsync 获取其 StorageFile,然后查看 StorageFile.GetParentAsync 以获取 StorageFolder。

另一种选择是仅从 Windows.Storage.ApplicationData.LocalFolder 获取您的本地文件夹,然后在路径的相关部分执行 GetFolderAsync。如果您必须重建文件路径,则获取 LocalFolder,将您的相对文件夹路径附加到其 Path 属性。这样一来,您就永远不会依赖于用户访问其应用数据的确切路径。

关于c# - 使用 ms-appdata 访问 StorageFolder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21246610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com