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

问题描述 投票:1回答:3

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

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

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

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

我该如何解决这个问题?

permissions windows-8 windows-runtime storage
3个回答
3
投票

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


0
投票

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


0
投票

将来访问文件

        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");
© www.soinside.com 2019 - 2024. All rights reserved.