0

我有一个 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

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

4

1 回答 1

1

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

使用 GetItemCountAsync 获取文件总数。

然后多次调用 GetFilesAsync。

GetItemCountAsync();
GetFilesAsync(uint startIndex, uint maxNumberOfItems);
于 2013-09-13T11:01:27.307 回答