KnownFolders.VideosLibrary.GetFilesAsync()需要很长时间

时间:2012-12-14 13:52:27

标签: windows-8

我正在使用awaitKnownFolders.VideosLibrary.GetFilesAsync()方法循环播放视频,首先我认为我的代码出了问题,但在我的带有SSD驱动器的计算机上,获取文件大约需要5-20秒。该文件夹仅包含5个小文件。

更奇怪的是,如果我指定一个带有await KnownFolders.VideosLibrary.GetFolderAsync("subfolder")的子文件夹然后从该文件夹执行await folder.GetFilesAsync() - 它会在一秒钟内循环文件!

我在PicturesLibrary中有相同的症状。只有我吗?也许是因为操作系统试图从网络加载“链接”视频库(这是我最好的猜测)?

1 个答案:

答案 0 :(得分:2)

我认为这只是你。这应该有效:

StorageFolder videosFolder = KnownFolders.VideosLibrary;

IReadOnlyList<StorageFile> fileList = await videosFolder.GetFilesAsync();
IReadOnlyList<StorageFolder> folderList = await videosFolder.GetFoldersAsync();

var count = fileList.Count + folderList.Count;
StringBuilder outputText = new StringBuilder(videosFolder.Name + " (" + count + ")\n\n");

foreach (StorageFolder folder in folderList)
{
    outputText.AppendLine("    " + folder.DisplayName + "\\");
}

foreach (StorageFile file in fileList)
{
    outputText.AppendLine("    " + file.Name);
}

OutputTextBlock.Text = outputText.ToString();

要自己测试,请运行Folder Enumeration Sample。这就是上面代码片段的来源。