如果用户使用FileOpenPicker为我的应用程序提供了一个文件,是否可以,如果可能的话,如何在应用程序生命周期中保持对关闭的引用?
我无法使用功能提供的编程访问,因为文件可以(并且很可能)从文件夹功能提供访问权限以外的位置打开。
我正在构建text file editor,我可以将内容保存在暂停状态并在启动时恢复,这不是问题。问题是用户打开文件并可以在任何时候点击保存而不提示,因为我在私有字段中保留对StorageFile的引用。如果应用程序关闭,似乎无法在不提示用户的情况下再次获取StorageFile。
在Windows应用商店应用中,当用户离开应用时,该应用将被暂停,如果机器上有内存压力,它将会关闭。 pattern将保存在挂起状态(因为无法处理关闭),然后通过加载保存的数据在下次启动时恢复。
在Windows商店应用中,有两种方法可以访问文件 - 要么让用户通过FileOpenPicker为您提供文件,要么您可以选择加入capabilities以编程方式访问某些文件夹。
答案 0 :(得分:2)
您可以使用此解决方案:http://www.jonathanantoine.com/2012/08/06/keep-access-to-filesfolders-the-user-granted-you/
将其存储在FutureAccessList中:
var picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
var folder = await picker.PickSingleFolderAsync();
StorageApplicationPermissions.FutureAccessList.AddOrReplace(Token, folder);
把它拿回来:
var folder = await StorageApplicationPermissions
.FutureAccessList.GetFolderAsync(Token);