我正在使用awaitKnownFolders.VideosLibrary.GetFilesAsync()
方法循环播放视频,首先我认为我的代码出了问题,但在我的带有SSD驱动器的计算机上,获取文件大约需要5-20秒。该文件夹仅包含5个小文件。
更奇怪的是,如果我指定一个带有await KnownFolders.VideosLibrary.GetFolderAsync("subfolder")
的子文件夹然后从该文件夹执行await folder.GetFilesAsync()
- 它会在一秒钟内循环文件!
我在PicturesLibrary中有相同的症状。只有我吗?也许是因为操作系统试图从网络加载“链接”视频库(这是我最好的猜测)?
答案 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。这就是上面代码片段的来源。