ディスクドライブ上のファイルの数をカウントするプログラムが必要です。
そうするための最速の方法は何ですか?
Directory.GetFiles()は非常に遅いため、代替手段ではありません。
インポートkernel32.dll
して使用しましたか?
ここの前に誰かが投稿した良い実装例があります:https ://stackoverflow.com/a/724184/912851 。一見の価値があるかもしれません。
編集: 私の人生で見た中で最速のものはこのアプリケーションです。ntfsジャーナルを使用します。そして数秒以内にそれは私のハードディスク上の何百万ものファイルをリストします。私は彼らがC++またはcにSDKとソースを持っていると思います。たぶん、マネージ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:\");
恐ろしいがリンキー!