2

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

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

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

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

我该如何解决这个问题?

4

3 回答 3

3

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

于 2012-11-22T20:34:55.370 回答
0

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

于 2012-11-22T19:07:33.723 回答
0

to access files in future

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

if you have too much file you can add StorageFolder of files

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

then get StorageFiles from the parent StorageFolder

StorageFile childFile = await folder.GetFileAsync("filename");
于 2018-09-07T12:47:28.717 回答