(C#お勉強) 自作ソフト更新 [SearchClone ver1.8.5β] 検索結果ダイアログ非表示ほか

(C#)自作ソフト更新。

ガラクタツール置き場はこちら→http://nln.jp/software/

[Reduce the duplication directory ver1.3.0β]
・ボタン管理修正

[SearchClone ver1.8.5β]
・ダイアログ非表示オプション追加
 プログレスバーが裏に行ったまま終了してしまうと検索結果などのダイアログの表示がうまくいかない場合が多々あるので、時間がかかるメイン検索処理とMD5最適化処理などでダイアログを表示せずにBEEP音を鳴らすようにメニューオプションを追加。

・MD5キャッシュ最適化処理のデバッグ情報追加
[Optimization]そのまま計算結果の元ファイルがあるかどうかを確認して元ファイルがない場合検索結果を削除する。(数が少ない場合や、PreLoad後の2回目とか検索あとなどOSキャッシュ効いているときは早いです。50万件で30秒くらいで最適化のみは終わります)

[PreLoad Optimization]検索ディレクトリ指定にあるディレクトリ情報を先読みして、メモリ内で優先チェックする。登録ディレクトリ内にファイルがない場合は、通常の元ファイルがあるかどうかをチェックする。
(MD5ハッシュ自体が、ファイルサイズを見てから計算しているのでヒット率は高くはありませんが50万件を個別チェックしたりすると途方もなく時間がかかるので用意してあります。登録ディレクトリを全部読み込むのでOSキャッシュに乗っていても、100万件読み込み54万件全一致で90秒くらいかかります。基本的に全くキャッシュに乗っていない場合はこちらの方が早くなります。)
※MD5ハッシュ情報が多数あるディレクトリを登録することで最適化速度を上げることができます。登録ディレクトリにほとんど元ファイルがない場合は先読みする分遅くなりますm(__)m
そのため、MD5ハッシュ情報を計算していないファイルがたくさんあるディレクトリを登録すると遅くなるだけなので注意が必要ですf(^^;)

最適化自体ががバイナリサーチ(2分引き検索)のおかげで多少無駄があっても速度に差が見えにくいので神経質になる必要はありません。MD5ハッシュを保管している圧縮ファイルを読み込むのに時間がかかるので、遅くなってきたと思ったらたまにやるくらいで十分かと。実データを読み込む時間はどうしても必要なので、一定以上は早くなりません。
(ファイル名に対するセキュリティーはスカスカですけどね^^; 怪しいファイル名が多い方は、キャッシュを個人フォルダに作るよう設定の保存先を変更して使うことをおすすめします)

★個別MD5ハッシュ削除のやり方。
「LoadMD5」ボタンでハッシュ結果を表示して不要なものがある場合は、ディレクトリ名称を一時的に変更して最適化をかけて、フォルダ名を戻すと個別の結果を消すことができます。