我正在构建一个 UWP 应用程序,它从文件夹中获取文件列表,对它们进行一些处理,然后删除这些文件。
这工作正常:
List<StorageFile> files;
public MainPage()
{
this.InitializeComponent();
files = new List<StorageFile>();
}
private async Task<List<StorageFile>> GetFiles(StorageFolder folder)
{
var items = await folder.GetItemsAsync();
foreach (var item in items)
{
if (item.GetType() == typeof(StorageFile))
files.Add(item);
else
await GetFiles(item as StorageFolder);
}
return files;
}
private async void GetFilesBtn_Click(object sender, RoutedEventArgs e)
{
// opening folder picker, then selecting a folder
var files = await GetFiles(folder);
// process files
ProcessFiles(files);
// dispose
DisposeFiles(files);
}
Run Code Online (Sandbox Code Playgroud)
然而,当处理大量文件时,内存消耗非常高(显然)。
因此,我想到的是使用yield return file …