0

问题

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

问题

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

这个例子

我正在构建一个文本文件编辑器,我可以在挂起时保存内容并在启动时恢复它,这不是问题。问题是用户打开文件并且可以在任何时候点击保存以在没有提示的情况下保存,因为我在私有字段中保留了对 StorageFile 的引用。如果应用程序关闭,似乎没有办法在不提示用户的情况下再次获取该 StorageFile。

Windows 应用商店应用详细信息

生命周期

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

从文件中读取数据

在 Windows 商店应用程序中,有两种访问文件的方法 - 让用户使用FileOpenPicker向您提供文件,或者您可以选择加入对某些文件夹进行编程访问的功能。

4

1 回答 1

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);
于 2012-11-09T10:10:36.410 回答