重複の可能性:
ファイル検索中にプログレスバーを更新する
20レベルの深さを検索してファイルを検索するために、再帰的にFindFirstFile
使用しています。
プログレスバーを追加するにはどうすればよいですか?検索の進行状況を表示するには?FindNextFile
ファイルを検索するときに、エクスプローラーのプログレスバーに似たものが必要です。
しかし、完了率を把握するために検索する必要のあるファイルの総数をどのように把握すればよいでしょうか。
重複の可能性:
ファイル検索中にプログレスバーを更新する
20レベルの深さを検索してファイルを検索するために、再帰的にFindFirstFile
使用しています。
プログレスバーを追加するにはどうすればよいですか?検索の進行状況を表示するには?FindNextFile
ファイルを検索するときに、エクスプローラーのプログレスバーに似たものが必要です。
しかし、完了率を把握するために検索する必要のあるファイルの総数をどのように把握すればよいでしょうか。
ファイルを検索することしかできない場合、頭に浮かぶのは、ディレクトリごとの平均ファイル数を計算することだけです。ディレクトリよりもはるかに多くのファイルがあると思います。そのため、ディレクトリを進めながら、100% をますます大きな数で割ります。もちろん、進行が停滞したり、元に戻ったりすることさえあります。
ファイルごとに何かを行う場合は、別のスレッドを実行してファイル システムを走査し、他のスレッドが見つかった各ファイルに対して処理を実行することをお勧めします。トラバース スレッドがすべてのファイルをカウントし、場合によってはそれらの合計サイズをカウントすると、進行状況が最も正確になります (もちろん、その間にファイルを追加または削除している可能性のある稼働中のファイル システムで問題が発生する可能性があります)。