如何保存StorageFolder

时间:2014-01-19 11:35:59

标签: windows-8 microsoft-metro

我正在为Windows 8创建一个(类型)下载管理器作为metro应用程序。我需要让用户选择他的下载目录。

因此我们可以使用文件夹选择器获取对文件夹的引用:

Windows.storate.Pickers.FolderPicker.pickSingleFolderAsync.then(function (folder)  
{
   //myFolder
   folder
}

现在我的问题是如何保存此folder引用,以便在用户关闭应用后仍然可以访问它?

似乎我们可以使用applicationData,但是这样可以保持文件夹权限吗?

我正在使用HTML + JS,但由于这是一个API问题,因此并不重要。

1 个答案:

答案 0 :(得分:0)

跟踪该文件夹的推荐方法是使用AccessCache APIs,它会跟踪您的应用已获得拣配员权限的文件和文件夹。 要在缓存中存储文件夹:

var folder = //Get a folder from the picker
var storageItemAccessList = Windows.Storage.AccessCache.StorageApplicationPermissions.futureAccessList;
storageItemAccessList.Add(folder,"identifyingString");

要从缓存中获取相同的文件夹,请稍后使用GetFolderAsync和您在存储文件夹时使用的标识字符串。

请注意,即使文件夹已在磁盘上删除,该文件夹也会保留在缓存中。尝试打开它时,您将收到FileNotFound异常。