5

ディスクドライブ上のファイルの数をカウントするプログラムが必要です。

そうするための最速の方法は何ですか?

Directory.GetFiles()は非常に遅いため、代替手段ではありません。

4

3 に答える 3

2

インポートkernel32.dllして使用しましたか?

ここの前に誰かが投稿した良い実装例があります:https ://stackoverflow.com/a/724184/912851 。一見の価値があるかもしれません。

編集: 私の人生で見た中で最速のものはこのアプリケーションです。ntfsジャーナルを使用します。そして数秒以内にそれは私のハードディスク上の何百万ものファイルをリストします。私は彼らがC++またはcにSDKとソースを持っていると思います。たぶん、マネージDLLを作成してC#で使用できますか?

于 2012-05-19T17:47:23.353 に答える
0

ドライブのUSNジャーナルを読み取ることができます。これは非常に高速ですが、管理者権限が必要です。

于 2012-05-19T22:59:08.820 に答える
-2
Func<string, int> files = null;
files = p => Directory.GetFiles(p).Length() + Directory.GetDirectories(p).Select(p1 => files(p1));

int count = files(@"c:\");

恐ろしいがリンキー!

于 2012-05-19T17:44:14.540 に答える