*FASTEST*目录列表

Dan*_*dor 6 c# directory file-io

我有大量的目录,我想尽快读取所有文件.我的意思是,快速没有DirectoryInfo.GetFiles,而是"从磁盘低级别获取集群".

当然,.NET 2.0,c#

类似的问题在这里,但这种方法没有任何好处:

C#目录列出海量目录

有人建议在FindFirst/FindNext上使用pInvoke.有人试过这个并且能够分享结果吗?

sne*_*rch 5

对于一个"正常"的方法,基本上一切都归结为FindFirstFile/ FindNextFile,你真的没有比这快得多......而且这不是超级涡轮增压.

如果你真的需要速度,请考虑手动阅读MFT - 但要知道这需要管理员权限,并且每当NTFS更新时都容易中断(并且,哦,是的,对于非NTFS文件系统不起作用).你可能想看看这个USN和MFT东西的代码.

但是,也许有一个不同的解决方案.如果您的应用程序不断运行并且需要接收更改,您可以通过执行一个慢速FindFirstFile/ FindNextFile通过开始,然后使用目录更改通知支持来获知更新...这适用于有限的用户,并且不依赖于在文件系统结构上.