使用ms-appdata访问StorageFolder

时间:2014-01-20 23:58:58

标签: c# windows-runtime storagefolder

我有一个应用程序,我必须存储和使用文件夹和文件的绝对路径。我有一个非常简单的问题。当我存储这样的文件夹的路径:“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,反之亦然?

编辑:澄清问题。

1 个答案:

答案 0 :(得分:4)

静态方法GetFolderFromPathAsync适用于:\ syntax。 ms-appdata:///不是路径名,而是URI方案,用于处理Windows.Storage.StorageFile.GetFileFromApplicationUriAsync方法。遗憾的是,文件夹的等效方法并不存在。

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

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

相关问题