【发布时间】:2018-03-05 01:52:45
【问题描述】:
我注意到该文件保存在 ApplicationData.Current.LocalFolder.CreateFileAsync 应用程序卸载后删除文件夹。
是否可以保存应用程序卸载后将保留在用户分析器中的文件,以便当用户重新安装应用程序时,我可以从该用户的文件中读取设置?
【问题讨论】:
标签: c# uwp windows-store-apps uwp-xaml
我注意到该文件保存在 ApplicationData.Current.LocalFolder.CreateFileAsync 应用程序卸载后删除文件夹。
是否可以保存应用程序卸载后将保留在用户分析器中的文件,以便当用户重新安装应用程序时,我可以从该用户的文件中读取设置?
【问题讨论】:
标签: c# uwp windows-store-apps uwp-xaml
未经用户同意不得。您必须实现一个保存/加载功能来询问用户将文件保存在哪里(如 Document),然后选择要恢复的文件。
【讨论】:
只有这两种方法是可能的:
请您的用户使用FilePicker 或FolderPicker 选择一个文件或文件夹,然后在您的MostRecentlyUsedList 中跟踪它们。然后您将获得访问用户永久文件或文件夹的权限。但是您应该注意到在卸载/安装您的应用程序后,您必须再次要求您的用户选择相同的文件或文件夹。请参阅下面的 Microsoft 文档以了解有关它们的更多信息。
尝试使用您的云服务器来存储永久文件。这是大多数网络公司产品都采用的方法。如果您必须有权力和金钱来建造或租用服务器,我建议您尝试这种方式。但是在一个小型个人应用中这样做是浪费时间和金钱。
总而言之,没有办法像 Win32 桌面应用程序那样轻松地存储永久文件。
【讨论】:
如果您的文件很小,您可以将其存储在ApplicationData.Current.RoamingFolder 中,它会在用户的设备间漫游。这种方法的缺点是文件很容易被覆盖,因为其中一个设备的同步较晚,而且文件在用户从他的所有设备上卸载应用程序后仅在有限的时间内保留在云上。查看更多关于漫游here in Docs的详细信息。
除此之外,您唯一的解决方案是在用户同意的情况下将文件存储在用户驱动器上(使用 FileSavePicker 或 FolderPicker)或他的 OneDrive,这作为备份选项很常见(在这里你需要集成 OneDrive SDK 并征得用户同意)。
【讨论】: