0

メソッド内のビデオをループしていてawaitKnownFolders.VideosLibrary.GetFilesAsync()、最初はコードに問題があると思いましたが、SSDドライブを搭載したマシンでは、ファイルを取得するのに5〜20秒かかります。フォルダには5つの小さなファイルしか含まれていません。

さらに奇妙なのは、サブフォルダーを指定して、そのフォルダーからawait KnownFolders.VideosLibrary.GetFolderAsync("subfolder")実行await folder.GetFilesAsync()すると、ファイルが1秒でループすることです。

PicturesLibraryでも同じ症状があります。私だけでしょうか?OSがネットワークから「リンクされた」ビデオライブラリをロードしようとするためかもしれません(これは私の最善の推測です)?

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

自分でテストするには、FolderEnumerationSampleを実行します。上記のスニペットはそこからのものです。

于 2012-12-14T15:58:40.127 に答える