计算驱动器上的文件数

本文关键字:文件 驱动器 计算 | 更新日期: 2023-09-27 18:34:37

我需要我的程序来计算磁盘驱动器上的文件数量。

最快的方法是什么?

Directory.GetFiles(( 不是替代方案,因为它非常慢。

计算驱动器上的文件数

您是否尝试导入kernel32.dll并使用它?

有人在这里发布了一个很好的实现示例:https://stackoverflow.com/a/724184/912851。可能值得一看。

编辑:我一生中见过的最快的一个是这个应用程序。它使用 ntfs 期刊。几秒钟内,它列出了我硬盘上的数百万个文件。我认为他们有一个 sdk 和 C++ 或 c 的来源。也许您可以创建一个托管 dll 并在 c# 上使用?

您可以读出驱动器USN日志,这非常快,但您需要管理员权限

Func<string, int> files = null;
files = p => Directory.GetFiles(p).Length() + Directory.GetDirectories(p).Select(p1 => files(p1));
int count = files(@"c:'");

可怕但很狡猾!