私の C# 3.0 アプリケーションは、フォルダーをトラバースし、フォルダー内で何らかの処理を行う必要があります。意味のある進行状況を示すには、フォルダーの総数を知る必要があります。
オプションで使用するDirectory.GetDirectories
とAllDirectories
、約 100K のフォルダーがある 2Tb ハード ドライブで非常に長い時間がかかり、その操作でも進行状況を表示する必要があります。私ができる唯一の意味のあることは、再帰を使用Directory.GetDirectories
して、すでに見つかった多数のディレクトリをユーザーに提示することです。ただし、これは最初のアプローチよりもさらに時間がかかります。
どちらのアプローチも遅すぎると思います。この番号をより速く取得する方法はありますか? たとえば、PInvoke
?を使用していくつかのファイル テーブルから取得します。他のアイデアはありますか?