打开包含大量文件的文件夹并检索它们

本文关键字:检索 文件夹 包含大 文件 | 更新日期: 2023-09-27 18:31:18

我有一个Windows 8程序,可以打开一个文件夹并列出其中的所有.txt文件。当该文件夹中有大量文件(数千个)时,我遇到的问题就会发生。发生这种情况时,它会导致我的程序挂起甚至崩溃。

我的代码如下所示:

var folderPicker = new Windows.Storage.Pickers.FolderPicker();
folderPicker.FileTypeFilter.Add(".txt");
StorageFolder folder = await folderPicker.PickSingleFolderAsync();
var folderToken = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(folder);
var fileList = await folder.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByName);
// Do something with the files

我可以做些什么来提高性能(不使用默认文件选取器)?还是我应该进行某种形式的检查以防止用户打开包含如此大量文件的文件夹?

打开包含大量文件的文件夹并检索它们

如果您在处理大量文件时遇到问题,我建议您分批请求文件,而不是一次请求所有文件。

使用 GetItemCountAsync 获取文件总数。

然后多次调用 GetFilesAsync。

GetItemCountAsync();
GetFilesAsync(uint startIndex, uint maxNumberOfItems);