0

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

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

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

4

1 回答 1

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

要自己测试,请运行文件夹枚举示例。这就是上面的代码片段的来源。

于 2012-12-14T15:58:40.127 回答