【问题标题】:Read an xml file from app data in a UWP app从 UWP 应用中的应用数据读取 xml 文件
【发布时间】:2016-09-08 00:08:18
【问题描述】:

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

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

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

我相信 XML 文件将被放置在诸如 c:\users\[user]\AppData.... 之类的位置

谢谢

【问题讨论】:

  • another app 是否与my app 拥有相同的发布者?可以改一下another app的保存路径吗?

标签: xml uwp appdata


【解决方案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。

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

ms-appdata:///local/

TempState 文件夹使用:

ms-appdata:///temp/

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

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

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

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

【讨论】:

  • 好答案! ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多