WinRT是否有一个存储选项,即使在卸载应用程序后仍然存在?

时间:2014-08-12 13:05:42

标签: c# vb.net windows-runtime windows-store-apps

我正在尝试将一些文件和文件夹放在我的WinRT应用程序可以访问的位置并从中读取文件。即使我卸载了应用程序,这些文件和文件夹也必须锁定并永久保存。

2 个答案:

答案 0 :(得分:0)

您可以从Windows应用商店应用访问4种主要类别的文件夹:

  • /AppData/Local/<yourpackage>
  • 标准可用库(音乐,图片,视频)
  • 需要提升权限的库(文档)
  • 用户定义的文件夹(通过FilePicker

通常,您将在第一种类型中存储特定于您的应用程序的数据,并在库或用户定义的文件夹中存储用户的数据。

卸载应用程序后,/AppData/Local下的包文件夹将被删除,因此没有任何内容(请注意,这包含使用ApplicationData.Current.LocalApplicationData.Current.Roaming获得的目录)。

因此,为了通过安装保存持久数据,您必须将它们保存在不同的目录中。但请注意,在选项4的情况下,用户可能不会决定让您访问他上一次选择的文件夹,或者他不想让应用程序访问文档库。

我认为一个更可靠的解决方案是将数据保存在远程位置,以便用户可以在再次安装应用程序时下载它,而不是依赖于用户设备上保存的所有内容。

关于锁定:您可以查看DataProtectionProvider并查看是否符合您的需求。

答案 1 :(得分:0)

重申Jeroen的回应:

  • 要在卸载应用时不会被删除的地方本地保存数据,您必须使用文件选择器让用户选择位置。
  • 远程保存数据是唯一不需要用户互动的选项。
  • 可以在应用程序的漫游设置中保存数据,因为这些设置在卸载应用程序后会保留一段时间。如果用户在其他地方安装了应用程序,则会持续保留该数据。如果没有其他安装,它将保留大约一个月。

我最近写了一篇博文,更详细地介绍了这个确切的场景,包括如何为您的商店远程获取任何数据的持久用户身份:http://www.kraigbrockschmidt.com/2014/07/31/persisting-data-after-uninstall/