如何在Windows应用商店应用中维护StorageFile over Shutdown事件?

时间:2012-11-09 08:00:37

标签: c# state lifecycle windows-store-apps storagefile

问题

如果用户使用FileOpenPicker为我的应用程序提供了一个文件,是否可以,如果可能的话,如何在应用程序生命周期中保持对关闭的引用?

问题

我无法使用功能提供的编程访问,因为文件可以(并且很可能)从文件夹功能提供访问权限以外的位置打开。

此示例

我正在构建text file editor,我可以将内容保存在暂停状态并在启动时恢复,这不是问题。问题是用户打开文件并可以在任何时候点击保存而不提示,因为我在私有字段中保留对StorageFile的引用。如果应用程序关闭,似乎无法在不提示用户的情况下再次获取StorageFile。

Windows应用商店应用详细信息

生命周期

在Windows应用商店应用中,当用户离开应用时,该应用将被暂停,如果机器上有内存压力,它将会关闭。 pattern将保存在挂起状态(因为无法处理关闭),然后通过加载保存的数据在下次启动时恢复。

从文件中读取数据

在Windows商店应用中,有两种方法可以访问文件 - 要么让用户通过FileOpenPicker为您提供文件,要么您可以选择加入capabilities以编程方式访问某些文件夹。

1 个答案:

答案 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);