如何保存StorageFile以便以后使用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何保存StorageFile以便以后使用?相关的知识,希望对你有一定的参考价值。

我在WinRT工作,我有点卡住了:

我正在编写一个具有媒体库功能的音乐播放器。我在SQLite数据库中保存有关音乐的信息(例如艺术家等)。我想让用户将他的音乐保存在他想要的任何地方,而不是windows方式,它必须在“音乐”库中。

用户可以使用文件夹选择器在文件夹中添加音乐。我遇到的问题是:如何在以后访问这些文件,例如在应用程序重新启动后?

保持路径不起作用,因为我总是得到“拒绝访问”错误。我唯一可以访问文件的方法是使用浏览文件夹时获得的StorageFile对象。

我该如何解决这个问题?

答案

与已经给出的注释一样,Windows.Storage.AccessCache(http://msdn.microsoft.com/en-us/library/windows/apps/br230566.aspx)是您需要使用的API。但是,不是保存对每个StorageFile的访问权限,而是使用文件夹选择器并保存StorageFolder对象的权限(API适用于两者)。您不太可能达到文件夹的1000项限制。

另一答案

Windows运行时应用程序是沙箱。如果要访问任意文件夹位置,则必须使用文件选择器。

另一答案

将来访问文件

        string key = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(storageFile);
        //save this key for access file later

        //Access file from saved key
        StorageFile file = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(key);

如果你有太多的文件,你可以添加文件的StorageFolder

        string key = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(storageFolder);
        StorageFolder folder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(key);

然后从父StorageFolder获取StorageFiles

StorageFile childFile = await folder.GetFileAsync("filename");

以上是关于如何保存StorageFile以便以后使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何保存 numpy 数组以便以后可以适当地加载它们?

如何设置 UWP C# StorageFile 以将 SoftwareBitmap 存储到特定路径

保存camera StorageFile文件

uwp 文件系统上 StorageFile 的唯一标识符

如何在html中检索Django表单对象以便以后使用AJAX

如何保存单个值并重新打开它们以供以后使用?