首页 文章

使用ms-appdata访问StorageFolder

提问于
浏览
4

我有一个应用程序,我必须存储和使用 absolute 路径的文件夹和文件 . 我有一个非常简单的问题 . 当我存储这样的文件夹的路径:"ms-appdata:///local/my_folder"并尝试从此路径获取StorageFolder时,它会抛出FileNotFoundException . Why is this exception thrown?

AFAIK "ms-appdata:///local/my_folder"等于"C:\Data\Users\DefApps\AppData{2F102375-2740-441C-BF2F-808608F47DA1}\Local\my_folder" . 后一个字符串由StorageFolder的GetFolderFromPathAsync静态方法接受 . How can I create the latter Uri from the former and vice versa?

编辑:澄清问题 .

1 回答

  • 4

    静态方法GetFolderFromPathAsync适用于:\ syntax . ms-appdata:///不是路径名,而是URI方案,用于处理Windows.Storage.StorageFile.GetFileFromApplicationUriAsync方法 . 不幸的是,没有相同的文件夹方法 .

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

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

相关问题