首页 文章

从UWP应用中的应用数据中读取xml文件

提问于
浏览
0

我们有一个UWP应用程序 . 我想要解析一个XML文件,该文件将被另一个应用程序放入应用程序的添加数据中 . (我们的应用程序没有上传到商店,所以我们能够这样做) .

从我的UWP应用程序打开此文件的最佳方式是什么?我可以这样读吗?

StorageFile file =await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///" + xmlfile.xml));

我相信XML文件将被放置在 c:\users\[user]\AppData.... 等位置

谢谢

1 回答

  • 1

    您应该将文件保存在 AppData\Local\Packages 中应用程序包文件夹的 LocalStateTempState 子文件夹中(具体取决于文件的用途 - 持久性或仅是临时性的) .

    现在您有两个选项来访问该文件:

    使用ApplicationData类

    您可以使用以下命令访问 LocalState 文件夹:

    var folder = ApplicationData.Current.LocalFolder;
    

    TempState 文件夹使用:

    var folder = ApplicationData.Current.TemporaryFolder;
    

    现在,这两个文件夹都是 StorageFolder 的正常实例,因此要获取文件,您只需调用:

    var yourFile = await folder.GetFileAsync( yourFileName );
    

    使用应用程序URI

    或者,您可以使用特殊的应用程序URI来访问该文件 . 我提到的两个文件夹都分配了特殊的URI .

    可以使用以下URI访问 LocalState 文件夹:

    ms-appdata:///local/
    

    TempState 文件夹使用:

    ms-appdata:///temp/
    

    这意味着您可以使用以下命令从 LocalState 文件夹中获取文件:

    var file = await StorageFile.GetFileFromApplicationUriAsync(
       new Uri("ms-appdata:///local/" + yourFileName) );
    

    关于发布商缓存文件夹的注意事项

    您可以使用第三个位置在应用之间共享文件 . 因为它们来自同一个发布者,所以您可以使用 Publisher cache folder 来存储和读取文件 . 更多信息可以在useful blogpost by Microsoft中找到 .

相关问题