使用UWP获取库中特定文件夹内的所有文件

时间:2017-08-24 16:35:38

标签: c# uwp

我尝试使用UWP将所有视频都放在视频库中的特定文件夹中,现在我可以在视频库中获取所有视频,但我还是喜欢将我的结果只减少到指定文件夹内的那些。我的代码是这样的:

            Windows.Storage.Search.QueryOptions queryOption = new QueryOptions(CommonFileQuery.OrderByTitle, new string[] {".mp4"});

            queryOption.FolderDepth = FolderDepth.Deep; 

            var files = await KnownFolders.VideosLibrary.CreateFileQueryWithOptions(queryOption).GetFilesAsync();
            StorageFile videoToPlay = (files[new Random().Next(0, files.Count)] as StorageFile);
            var stream = await videoToPlay.OpenAsync(Windows.Storage.FileAccessMode.Read);
            Player.SetSource(stream, videoToPlay.ContentType);
            Debug.WriteLine(Player.Source);

我如何访问名为"要播放的视频的子文件夹"然后获取该文件夹中的所有视频?我尝试使用如下路径访问它:

        string localfolder = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
        var array = localfolder.Split('\\');
        var username = array[2];
        string[] allVideos = System.IO.Directory.GetFiles("C:/Users/" + username + "/Videos/Videos to Play");

但即使我已经请求访问视频库,我也会被拒绝访问(事实上,第一个示例工作表明我实际上可以访问它)。

1 个答案:

答案 0 :(得分:2)

try
{
    var folder = await KnownFolders.VideosLibrary.GetFolderAsync("Videos to Play");
}
catch (FileNotFoundException exc)
{
    // TODO: Handle the case when the folder wasn't found on the user's machine.
}

文件夹变量中,您将获得所需文件夹的引用。然后它就是你已经做的一样的东西,但是不是 KnownFolders.VideosLibrary 文件夹使用这个!