2

在 vb.net 或 C# 中,是否可以从文件夹中检索一定数量的文件(例如 100 个)而不是扫描所有文件(例如 1000000)并全部检索它们?

如果是,那么实施是什么?

非常感谢

4

4 回答 4

2

在 .Net Framework 4.0 及更高版本中,您可以使用DirectoryInfo.EnumerateFiles并获取任意数量的文件。此方法在返回之前不需要对目录进行全面扫描。

于 2012-12-04T12:54:32.320 回答
1

由于您需要一个适用于版本 4 之前的 .NET Framework 版本的解决方案,因此唯一想到的是 WinAPI 的FindFirstFileFindNextFile函数。

看看这个EnumerateFiles基于这些 WinAPI 函数的实现。

于 2012-12-07T22:48:13.320 回答
0
foreach (var file in new DirectoryInfo("c:/mydirectory").EnumerateFiles())
{
    //do stuff
}
于 2012-12-04T12:54:37.047 回答
0

我猜你应该首先调用GetFiles方法来检索与目录相关的所有文件的路径(文件尚未读取),然后从集合中读取前 100 个文件(例如,使用 StreamReader 等)。

如果框架低于 4,这将起作用。

于 2012-12-05T07:44:00.363 回答