在vb.net或C#中,是否可以检索一定数量的文件,例如100从文件夹而不是扫描所有文件(例如1000000)并检索所有文件?
如果是,那么实施是什么?
非常感谢
答案 0 :(得分:2)
在.Net Framework 4.0及更高版本中,您可以使用DirectoryInfo.EnumerateFiles并根据需要获取尽可能多的文件。此方法在返回之前不需要对目录进行完全扫描。
答案 1 :(得分:1)
由于您需要一个适用于版本4之前的.NET Framework版本的解决方案,因此唯一需要考虑的是WinAPI的FindFirstFile和FindNextFile函数。
根据这些WinAPI函数查看EnumerateFiles
的此实现。
答案 2 :(得分:0)
foreach (var file in new DirectoryInfo("c:/mydirectory").EnumerateFiles())
{
//do stuff
}
答案 3 :(得分:0)
我猜你应该首先调用GetFiles方法来检索与目录相关的所有文件的路径(文件还没有读过),然后从集合中读取前100个文件(例如,使用StreamReader等)。 / p>
如果框架低于4,这将有效。