WinRT访问被拒绝提交

时间:2013-08-25 16:11:37

标签: javascript windows-8 windows-runtime winjs windows-store

我遇到了这个奇怪的问题。我有一个可以使用此代码创建播放列表的应用

var playlist = new Windows.Media.Playlists.Playlist();  
...
WinJS.Utilities.id("appbar-save-button").listen("click", function ()
        {
            var savePicker = new Windows.Storage.Pickers.FolderPicker();
            savePicker.fileTypeFilter.append("*");

            savePicker.pickSingleFolderAsync().then(function (folder)
            {
                playlist.saveAsAsync(folder, "My Playlist", Windows.Storage.NameCollisionOption.replaceExisting, Windows.Media.Playlists.PlaylistFormat.windowsMedia);
            });

        })

当我尝试使用此代码

访问此文件时出现问题
WinJS.Utilities.id("appbar-open-button").listen("click", function ()
        {
            var openPicker = Windows.Storage.Pickers.FileOpenPicker();

            openPicker.fileTypeFilter.append(".wpl");
            openPicker.pickSingleFileAsync().then(function (file)
            {
                Windows.Media.Playlists.Playlist.loadAsync(file).then(function (playlist)
                {
                    // Print the name of the playlist.
                });
            });

        })

在注释行中,我得到一个例外:Cannot access the specified file or folder (⑰ᑲÕ). The item is not in a location that the application has access to (including application data folders, folders that are accessible via capabilities, and persisted items in the StorageApplicationPermissions lists). Verify that the file is not marked with system or hidden file attributes.

我已经为应用程序文档库功能提供了类型为.wpl的文件类型关联,但我仍然遇到此异常。我该如何解决呢?

编辑:将视频添加到将来的访问列表似乎可以解决应用创建的播放列表的问题,但对于随机播放列表,问题仍然存在。

1 个答案:

答案 0 :(得分:3)

据我所知,问题不在于加载“播放列表”文件的权限;如果在计算机上的任何位置选择了文件,则使用文件选择器,用户将可以访问该文件;同样适用于文件夹选择器,其中访问文件夹中的所有文件。之后,如果所选文件/文件夹已添加到FutureAccessList,则稍后也可以访问该文件夹/文件。

播放列表可能包含用户无法访问的文件夹中的文件。要确认这一点,请尝试打开仅在音乐库位置没有文件或文件的播放列表 - 在提供应用程序“音乐库”功能之后。如果这样做 - 应用程序需要设置添加音乐文件夹。只会加载包含所选文件夹中文件的播放列表。