私のC#3.0アプリケーションは、フォルダ内を走査し、内部でいくつかの処理を行う必要があります。意味のある進歩を示すために、私は合計フォルダ数を知る必要があります。サブフォルダの数を素早く見積もる
AllDirectories
オプションを使ってDirectory.GetDirectories
オプションを使用すると、フォルダが約100Kの2TBハードドライブでは非常に時間がかかります。私ができる唯一の意味があるのは、再帰的なDirectory.GetDirectories
を使用して、すでに見つかっているいくつかのディレクトリをユーザに提示することです。しかし、これは第1のアプローチよりもさらに時間がかかる。
私は両方のアプローチが遅すぎると信じています。この番号を早く取得する方法はありますか?例えば。 PInvoke
を使用していくつかのファイルテーブルから取得しますか?他のアイデア?
ありがとうございます - これはまさに私の考えです。他の選択肢が見つからない場合は、この方法を選択します(いくつかの魔法の場所から素早く番号を引き出す魔法の方法)。 – Alex
Alex:ファイルシステムはあなたが望む情報を保存しないので、それを見つける唯一の方法はスキャンすることです。 – Gabe