【发布时间】:2021-08-11 22:21:33
【问题描述】:
我正在使用 Directory.EnumerateFiles() 遍历代码中的特定目录。我只需要目录中存在的每个文件的文件名,但文件数量可能很大。根据 MSDN 和其他各种来源,我们看到它提到“当您使用 EnumerateFiles 时,您可以在返回整个集合之前开始枚举名称集合。当您使用 GetFiles 时,您必须等待整个数组在访问数组之前要返回的名称。", here。
所以,我在我的机器上做了一些实验。
var files = Directory.EnumerateFiles(path);
foreach(var file in files)
{
}
在开始迭代之前我有一个调试器,即在 foreach 中。我看到files(返回的可枚举字符串)包含我目录中的所有条目。为什么这个?这是预期的吗?
在其他一些来源上,我看到我们需要有一个单独的任务来执行迭代,同时在另一个处理线程中,可以迭代枚举,example。我一直在寻找类似的东西:默认情况下,枚举器会获取前 200 个文件。对 MoveNext() 的连续调用,即当访问第 201 个项目时,将获取下一批文件。
【问题讨论】:
标签: c# .net directory getfiles