◆◆◆◆◆ Search Clone Files ◆◆◆◆◆
・基本的に同じサイズのファイルを探します。
※更新φ(__)m メモメモ....

http://nln.jp/software/

デバッグ苦手なので利用は人柱的な感じでもいいよって人だけでお願いしますm(__)m
結構リスキーな実験機能も多いんで、検索にかかりにくい名前を選んでまする。DNAやヒトゲノムの陰に隠れるくらいでちょうどいいですよね^_^)v
注意:ドライブキャッシュを有効にして、接続してないドライブを間違えて繋ぎ変えたり、ドライブレター競合でOSが自動で変更したときなど簡単に全データ消えますので。
ver1.0.0いつもお世話になっているFileHammerがファイル削除中に落ちるので、機能制限版みたいなやつを自分用に開発。
原因がUnicodeなのかネットワークドライブのせいか不明。移動していてダウンロードにたどり着けないぽ・゚・(ノД`)・゚・
ver1.0.1ファイル名とサイズで検索機能追加。80万件のファイル検索も12分くらいで検索できるように高速化!。
ver1.0.2表示調整&検索履歴保存。80万件のファイル検索も7分くらいで検索できるように高速化。再検索は40秒程度。メモリは1GBくらい使います(´・ω・`)
ver1.0.3フォルダ選択が「ルート指定」時のバグ修正。過去の履歴からディレクトリの追加機能。
ver1.0.4ダウンロード用ドライブの指定&過去の検索ドライブをキャッシュしてみた「ルート指定時のみ」。
ドライブが見つからない場合はキャッシュを読みます。(外付HDDやNASなら起動してなくても検索できたりするかも。
キャッシュはドライブレター空いていれば割り当てられますが、内部データは保存されたドライブレターになりますので注意を。)
ver1.1.0「同一サイズ」「同一サイズ+ファイル名」「同一サイズ+ファイル名+日付」検索実装。
ver1.1.1「名前」「日付」検索追加。表示処理の最適化実装優先でメッセージ処理・表示更新タイミング・デバッグ処理が後回しになってますf(^^;)
ver1.1.2キャッシュ内のファイル名を簡易検索
ver1.1.3起動時の表示位置問題修正
ver1.1.4プログレスバー(スライドバー対応)更新タイミング修正、結果表示画面のチェックカウント表示、キャッシュサーチの検索を大小文字同一にした。
ver1.1.5時刻の桁違い比較バグを修正。
ver1.1.6検索結果がキャッシュのみの時は非表示オプション追加。
ver1.1.7キャッシュ検索のバグ修正。
ver1.1.8検索後の処理を調整。
ver1.1.9 【32bitOS対応最終版】特に安定板とかいうわけでもありません^^;。
検索結果からダブルクリック起動で関連付けられたアプリで実行のときに多重起動でエラーする対応
キャッシュサーチのファイル名検索とパス検索とフルパス検索がごちゃ混ぜになっていたバグ修正。ファイル名のみとフルパスに統一。
検索結果がキャッシュのみの時は非表示に項目を追加
検索結果の範囲選択などの処理の修正(右クリックで選択処理)
オプション変更/削除後AutoCheckを無効。再検索を促すように設定
検索終了ダイアログ表示

※注意:32bit版は基本的に簡単に利用できるメモリが1GB(搭載実メモリ量に関係なし)までなのでメモリ内で読み込み圧縮処理をしているため
メモリ制限に引っかかる場合はキャッシュファイルが更新されません。
(今のところ仕様です。ドライブキャッシュファイルを利用しない、ファイル数を減らす、ファイル名を短くするなどで軽減できるかも)
ファイル名が拡張子含めて10文字、70万ファイル前後で引っかかります(ファイルサイズにより多少前後します)
ver1.2.0AutoCheckオプションを指定していない場合エラー処理を起こすバグ修正
検索項目の表示色変更・速度向上のため画面遷移修正
プログレスバーの更新頻度設定が処理速度にほとんど影響しないので一時停止(30万件で0.5秒くらいの誤差^^;)
●前言撤回で大きいバグ出たのでx86(32Bit)版も更新ですm(__)m
ver1.2.1 検索結果が正しく表示されないバグ修正
●バグ出たのでx86(32Bit)版も更新ですm(__)m
ver1.2.2 検索結果操作の最適化・高速化
表示結果の配色処理選択など
ver1.2.3 検索結果の処理/表示回りの修正
バグ修正:ドライブキャッシュクリア処理で一部のファイルが削除できない場合があったので修正
※設定項目減らしたSimple版テストしてみた(32bit対応AnyCPU版)
ver1.2.4 速度比較用にバージョン揃えました。
Simple版は結果に対する処理時のSwap用ページを復活。
AnyCPU(32bit優先)版, Simple版は機能的不都合が起こるバグが無ければ終了で・・・(^◇^;
ver1.2.5 チェックドライブ以外の色変更が反映されていなかったバグ修正。
●バグ出たのでx86(32Bit)版も更新ですm(__)m
ver1.2.6 Hash比較機能追加。
多重起動禁止、検索結果のフォント変更など
ver1.2.7 ハッシュ計算時読み込めないファイルの対応,検索順変更(名前がキーになるときは優先)
ver1.2.8 パス登録のバグ修正([c:\_a]があると[c:\_ab]が登録できなかった)
MD5、削除処理時にエラー回避処理追加
ver1.2.9 ・キャッシュのみ一致を非表示にするオプションを選択した場合、背景色がグループ分けできずに連続するバグを修正
ver1.3.0 ・検索結果の処理項目の追加&調整を行いました。ダブルクリック実行時にチェック項目が変更されないように変更など
ver1.3.1 ・Hash計算時、キャッシュドライブを参照しないように修正
・Hash計算結果を再利用するように修正
ver1.3.2 ・Hash計算結果をファイルに保存するように修正
ver1.3.3 ・MD5ハッシュを保存するファイルサイズの下限を設定できるように修正。
・リストの右クリックなど表示回り調整。
ver1.3.4 ・MD5ハッシュを保存で元ファイルが無い場合は保存しないオプションが次回起動時保存されていなかったバグ修正。
・MD5ハッシュが50万件を超えたあたりで異常動作を起こすバグ修正^^;。
・MD5リスト表示追加ほかいろいろ調整&修正。
・今回も大幅な修正が入っております。デバッグが進んでない項目もいくつかありますが見つかったバグを順次修正してます_(._.)_。
ver1.3.5 ・機能のメモ書き追加。
・使い方を間違えると泣きそうな機能に[非推奨]など追加。
ver1.3.6 ・MD5検索時の自動選択バグを修正。
・削除処理の高速化(ファイル数が少ない場合はウィンドウ表示の為ちらつき発生します)。
・32bitOS対応版需要はあるものの仮対応程度で。メモリガシガシ使う機能がほしくて作ったものなので(^◇^;。
・32bit版は基本的にキャッシュ無効でいきませう。
・空フォルダの検索&削除処理などテスト開始。
ver1.3.8 ・削除処理の時に読み取り専用を解除する機能を追加
・デバイスが無い場合MD5計算結果は削除しないように修正(外付&仮想ドライブ接続忘れなどで全部消えるため)
・削除処理後にMD5キャッシュデータの更新処理導入・・・重いです。
・Simple(キャッシュ機能など削除)版追加。
ver1.3.9 ・表示バグ修正
ver1.4.0 ・ヒューマンエラー起こしにくくするガードレール敷設。
・細かい表示バグ修正
・番号の区切りがいいので安定板作ろう( ^ω^)・・・
ver1.4.1 ・初回起動時、設定ディレクトリ作成のをキャンセルするとエラーが出るバグを修正^^;。
ver1.4.2 ・削除パターン追加(大量削除ファイル対応)。リスト作成処理が環境により一定数以上になる場合、個別処理の方が早いため(^◇^;。
・空きディレクトリ処理変更&最適化。
ver1.4.3 ・MD5キャッシュ最適化の調整。
・MD5キャッシュで1世代前のバックアップを保存するように変更。
・MD5最適化でLaegeモード(1万件~)Hugeモード搭載(10万件~)。
・引き続き表示回りの調整。
ver1.4.4 ・検索結果からのダブルクリック実行時のバグ修正。
・キャッシュ利用時、キャンセル時も途中までのデータが保存されるバグ修正。
・検索結果の上の分類をクリックすると並び替えするように変更。
・追加カラー設定調整、システム予約色(青色、灰色)表示。
・表示タイミングの機能調整中。一番右がほぼ停止になるように調整中です。表示更新が無い分早くなります。(数十万件レベルじゃないと誤差の範囲です(^◇^;)
ver1.4.5 ・設定ファイルの読み込み動作変更。
・設定ファイルの保存ディレクトリ変更時に、ディレクトリ作成をキャンセルした場合のバグを修正ほか。
・MD5キャッシュ設定変更時の動作を変更。
・MD5キャッシュなし設定で計算しその後キャッシュを有効にした場合、過去の結果に追加するように変更など。
ver1.4.6 ・設定保存先変更の動作変更。
・ダブルバッファリングテスト中。
ver1.4.8 ・ファイルアクセス権限関係のエラー処理強化(nProtectなどではアクセス権限自体が奪われるので回避不能の模様)。
・キャッシュのオプションの名称やコメントなど変更。
・だいぶ最適化が進み速度的に大差なくなってきたので、表示負荷軽減用のスワップページを取り除きました。画面切り替えのちらつきの方が問題に^^;
ver1.4.9 ・nProtect回避コード抜いきました。回避できてなかったみたい。重いので削除。
・ちょいちょい最適化。1.4.8よりましな程度。SSD100万件検索、7万件ヒット、3.5万件自動チェックで5秒くらい短縮^^;
・しかし、アクセス権限の確認が入ってv1.2.5時代よりもだいぶ重くなってしまった…(^◇^;
ver1.5.0 ・キャッシュ内検索のページが表示できないバグを修正。
ver1.5.1 ・キャッシュファイル表示色が更新されないことがあるバグを修正。
※上記理由によりダブルバッファ切りました。
・検索結果がキャッシュファイルの場合はHash項目に表示を入れるように変更。
ver1.5.2 ・自動選択処理でMD5(サイズ&名前)選択時、日付の優先処理が正しく選択されないバグを修正。
※MD5を使う場合はこのバージョン以降をお使いください
・自動選択処理で条件が変わったときに表示色が更新されないことがあるバグを修正。
※開発環境がVisualStudio2017に移行しました。.netランタイムライブラリのバージョンは変わりませんのでそのまま上書きで使えるかと^^;
ver1.5.3 ・ExtraColor利用でキャッシュを利用しない場合表示色がおかしくなるバグを修正。
ver1.5.4 ・デバッグログの消し忘れあったので修正。
ver1.5.5 ・検索結果の選択処理見直し。[ExtraColor]範囲選択のチェック解除時に色が戻らないバグ修正。
・検索結果の外のセルから範囲選択ができるバグあります。範囲選択はSHIFTまたはCTRLキーを押しながら選択してください。
ver1.5.6 ・保存ディレクトリが無い状態(初回など)でキャッシュ保存指定で実行した場合エラー落ちするバグ修正。
・システム属性のディレクトリ/ファイルの処理には対応していません。
ver1.5.7 ・検索結果の範囲選択の動作変更。
・マウスをアイテムの上に来た時に、ファイル名を表示するように変更。
(注意文章取りました)
ver1.5.8 ・エラー発生時、ダイアログを表示するように変更。
ver1.6.0 ・検索後の結果に対してキー設定でチェックをつける機能を追加(テスト中)。
ver1.6.1 ・ファイルの移動先をゴミ箱以外も指定できるように追加(テスト中)。
ver1.6.2 ・空きディレクトリの削除処理を見直し
ver1.6.3 ・おまけ機能追加:簡易フォルダ振り分け機能
ver1.6.4 ・バグ修正:ある条件下でキャッシュが破たんする場合の修正。
ver1.6.5 ・バグ修正:ページ管理バグの修正。
・キャッシュ回りのケアレスミス防止強化を行っています。
・キャッシュなしのSimple版を追加。
・ランタイムライブラリ .NET Framework 4.6.2 のターゲットで環境で開発しています。
ver1.6.6 ・[Directory Change] ディレクトリ振り分け機能を見直し、ディレクトリの除外や再検索機能を追加。
・[Directory Change] 指定ディレクトリのみの単一検索をできるように変更。
ver1.6.7 ・[Directory Change] ディレクトリの有無のエラー表示が間違っていたので修正。
・[Directory Change] 検索結果で右クリックから全選択/全解除できるように修正。
ver1.6.8 ・フルパスがOSの想定する260文字以上の場合、ファイル情報取得時エラー落ちを少し回避^^; たぶん全部潰せてません。
・[Directory Change] 同じ場所移動をはじくようにしました。
・通常の検索時にキャッシュの作成時間を表示するように変更。
ver1.7.0 ・指定キー検索のバグを修正しました。一部の組み合わせで正常にソートされていなかったため。
このバージョン以降をお使いください。
ver1.7.2 ・指定先移動処理:同じ場所の時は除外するように修正(今までは確認画面が出ていた)。
・指定キー処理の最適化。チェック状態変更時に画面がチラついていたため修正。
ver1.7.3 ・MD5キャッシュ保存のチェックボックスを変更した場合、メモリ内の計算結果を破棄するように変更。

ver1.7.4 ・開発環境が変わりました。Windows .NET Framework 4.7(64bit only)
ver1.7.6 ・検索一致対象のファイルサイズが2,147,483,647(32bitの範囲)を超えている場合エラーを起こすバグの修正。
ver1.7.8 ・[MoveTo]Directory Change 機能の調整。
-処理前後のカラー追加
-自己ファイル一致の表示・非表示チェック追加
-プログレスバー表示タイミングでエラーが出るバグの緩和
-検索実行(通常検索、MoveTo検索)時、2度押し時のキャンセル処理追加。
-[DirectoryChange]タブを[MoveTo]タブに名称変更
ver1.7.9 ・Directory Change 機能の調整。
一部デバッグ処理が残っていたので削除
★-旧キャッシュ最終版です。
ver1.8.0 ●キャッシュ仕様の変更テスト開始
・旧キャッシュは.cache1にリネーム、新キャッシュは.cache2に変換
・新しいドライブキャッシュ作成時に論理ドライブ情報を保存するようになります(.xml)
●機能追加 ・キャッシュ使用時「VolumeCheck」のチェックを入れると、検索開始時に保存されているボリュームラベルと比較します。
ver1.8.1 ・キャッシュ変換で新キャッシュファイル名が間違っていたバグを修正m(__)m
戻す方法:
「再変換」
1、[.cache1]ファイルの拡張子を[.cache]に変更してver1.8.1を起動することで[.cache2]ファイルに変換することができます。
「再作成」
2.1、ver1.8.1を起動し、DeleteCacheFilesボタンを押してキャッシュを全削除する。
2.2、[Save Drive Cache]にチェックを入れて、ドライブを接続しルートを指定して検索を実行する。
※『Drive_[.cache2』ファイルは手動で削除してくださいm(__)m
ver1.8.2 ・ボリュームラベルが一致しなかった場合、処理をキャンセルするか質問をするように変更
ver1.8.3 ・MoveTo処理のエラー発生時にプログレスバーが閉じないバグを修正
ver1.8.5 ・1.8.4は開発環境変更なので更新はありません。
・ダイアログ非表示オプション追加
・MD5キャッシュ最適化処理のデバッグ情報追加
ver1.8.8 ・1.8.6 ダイアログ非表時、MD5ハッシュのキャッシュファイル最適化の結果表示が経過時間表示で上書きされていたなどの修正
・1.8.7 MoveTo機能で設定が保存されていなかった項目をがあったので修正
・1.8.8 MoveTo機能で画面更新回数を減らしました
ver1.8.9 ・ドライブキャッシュの情報表示内容を増やした
ver1.9.1 ・1.9.0 エラー警告音追加
・1.9.1 MoveToのレイアウトやボタン名称変更など
ver1.9.2 ・MoveToのレイアウト変更に伴う表示バグ修正
ver1.9.3 ・ドライブキャッシュ内検索にクリップボード貼り付けボタンを追加(前後の空白は削除されます)
・削除処理のエラーメッセージを修正
ver1.9.4 ・コピーライトを2019に。
ver1.9.5 ・MoveTo処理でReCheck処理を行っているときに、キャンセルするができなかったので修正。
ver1.9.6 ・MD5キャッシュの最適化処理で、ロールバック処理や古いファイルの置き換えなど特定条件下で一部のファイルの新しいMD5値が削除されていたため、検索処理時に毎回再計算が行われていたバグを修正。
1.一度すべてのキャッシュしたいドライブをつなぎ Optimization(最適化)を行ってください。キャッシュ内のファイル日付と違うMD5キャッシュデータを削除します。
2.新しく検索することでMD5キャッシュは自動的に更新されます。
※バーチャルドライブやOSのファイルシステムを介さずに変更されたファイルには対応できませんので、キャッシュをオフにしてください。
(ファイルサイズと日付が変わらない&上書きではなくバックアップと置き換えるような更新が行われたファイルは、内容をマッチングしないといけないの。処理に時間がかかるためやってません)
ver1.9.7 ・エンバグ修正
ver1.9.8a ・MoveToにディレクトリモード追加。α版テスト開始。
ver1.9.8b ・MoveTo機能修正。パス一致とディレクトリ名一致を使えるように修正
ver1.9.9 ・一括削除(移動)処理でOSに処理を渡すときに分割で選択できるオプションをメニューに追加。
・一括処理を5000件と10000件のブロックに分けて処理できるようになりました。
(その前に検索範囲を絞った方が削除ミスが減ると思いますが…)
・一括処理の途中であるタイミングでキャンセルした場合エラーが出るバグの修正。 ・メモリ使用量の表示更新のタイミングを少し増やした。 ・メモリ確保について、64bit版でも2GB以内のメモリ確保になっています。 -「SearchClone.exe.config」内の「gcAllowVeryLargeObjects enabled="true"」にすることで2GBを超えるメモリ確保ができるらしい。(全くの未保障) -例1)1万フォルダ100万ファイルのサイズ検索で、22万ヒット、8万ファイル一致、4万ファイル削除で1.2GBくらい。 -例2)1万フォルダ100万ファイルのMD5サイズ検索で、70万MD5キャッシュ読み込み、18万ヒット、3万ファイル一致、2万ファイル削除で1.6GBくらいの使用。 ※パスの長さで変わりますが参考例ということで。 MD5などキャッシュファイルが圧縮されているため、読込→解凍→リスト読込が比較的メモリを多く使うところ。
ver2.0.0 ・VisualStudio2019に移行
ver2.0.1 ・ver2記念!横文字の設定項目を日本語にするオプションを追加。 (元に戻すときはチェックを外して再起動)
・初期設定で2GB超えるメモリの利用を有効にしました。
ver2.0.2 ・削除ログを残すオプションの追加
ver2.0.3 ・ファイルアトリビュートにシステム・ハイドなど設定されている場合、検索対象外になっているファイルをログに表示するように修正
ver2.0.4Microsoft .NET 4.8に移行(Windows10 May 2019では標準でインストール)
・MoveTo機能で、サブディレクトリの検索を指定できるように修正
ver2.0.6 ・フォームのスケーリング機能をオフにしました。環境によってボタンなどのコントロールサイズが変わって画面外に行ってしまうバグ対応。
ver2.0.7c ・旧キャッシュの最終版(.NET 4.5向けのビルドになってます)
・MD5キャッシュファイルがない場合のバグ修正。
ver2.0.8 ※改変が大きいので、キャッシュや設定などバックアップを取っておきましょう。
キャッシュ管理が変わります。一度変換するとキャッシュの互換性がないので注意してください。
・MD5キャッシュファイルがない場合のバグ修正。
・protbuf-netを使って高速化を行いました。
- MD5キャッシュの管理を変更(version4)。
- MD5キャッシュのversion1の変換ロジックの削除。
- gzipの利用をやめました。
ver2.1.0 ※キャッシュエラーチェック追加によりキャッシュ内容によっては変換できないものがあります。(ファイル名やパスの長さが異常とか)
・キャッシュ削除処理変更。
・キャッシュ改変デバッグ版。
・キャッシュ情報のリスト表示など新キャッシュに対応 ・キャッシュv2->v4へのコンバートテスト。
・キャッシュはversion4へ統一(内部処理はまだv3変換しているので、ちょいちょい遅いです)。
・MD5キャッシュ以外のキャッシュも protbuf-net 処理に変更。
ver2.1.1 ・ドライブキャッシュ内再検索で前回の読み込みデータを行えるようにオプションを追加
・キャッシュバージョン更新情報を保存し、すでに変換が終わっている場合チェックをスキップするように修正。
(古いキャッシュを戻すときはメニューバーのオプションから、戻したキャッシュの種類のチェックマークを外すと次回利用時に変換チェックされます)
※キャッシュのデータ変換は使える部分をコピーしているだけのおまけ機能です。数週間後にはオフにする予定です。
なお、デバイスデータはそのままなので、できる限り再取得をお願いいたします
・2.08以前から設定が引き継げないため、オプション設定などがリセットされます
ver2.1.2 ◆2.0.8以前の設定が読み込めずおかしくなる場合があるので、再確認をお願いします
・コンバート処理のタイミングで設定が読み込めていないバグの修正。。
・内部処理に伴う一部設定リセットと、初期値の変更。
・最適化時のキャッシュ変換処理の追加。
ver2.1.4 ・ログ/エラー表示など調整
ver2.1.6 ・検索中に検索ボタンを連打するとエラーを起こすので、検索中はボタンを押せないようにした(^◇^;
・(MoveTo)表示修正(合計サイズ追加、スクロール追従)
ver2.1.7 ・検索結果のまとめてファイル削除処理の高速化、削除順をディレクトリ単位でソート
・ファイル情報取得の変更、空ディレクトリ削除の高速化
・検索終了時のダイアログ表示を検索ダイアログ表示に合わせて表示するように修正
ver2.1.8 ・検索結果の表示でフォント設定のBold・Italicも保存できるように修正

ver2.1.9 ・MoveTo処理で、移動元PATHが移動先PATHに含まれている場合にエラーが起きる場合があったので修正
※PATH名が移動元[D:\TEST\]と移動先[D:\TEST_TEST\]の場合も「含まれる」判定にしています。
ver2.2.0 ・前回のMoveTo処理の修正で、ファイルサイズの合計表示がおかしくなっていたので修正
ver2.2.1 ・MoveTo処理でディレクトリ名に半角括弧「()」で囲まれた文字列をサブキーとして登録する機能の追加
・MoveTo処理でキーワード登録時に前後のスペースを無視するように修正
・protobuf-netのバージョンアップ 2.4.0→2.4.1
※DLLが新しくなっています。このバージョン以降は新しいDLL同梱版をお使いください
[Reduce the duplication directory ver1.4.8c]
・ログの表示件数を2000件までに変更(環境によっては反応が鈍くなるようなので)
ver2.2.2 ・MoveTo機能でReCheckを行ったとき、下位ディレクトリ検索の設定が無効になっていたので修正。
ver2.2.3 ・MoveTo機能で選択容量の更新タイミングが抜けていたので修正。
ver2.2.6 ・LongPathチェックの無効化(ver2.2.6)
・多重起動チェックの無効化(ver2.2.6b)
※同一フォルダのキャッシュを複数からアクセスすると破損しますので、別フォルダを作って起動してください。
※MoveTo機能など同一ドライブへのアクセスも避けた方がよさそうです。
※特に用がなさそうな人は通常版を使いくださいm(__)m
ver2.2.8 ・名前検索の自動選択で、日付指定(古いファイル、新しいファイルを残す)時にサイズが優先されていたバグの修正
ver2.2.9 ・名前検索で、ファイル名の大文字判定オプション追加(基本は大文字小文字は別文字判定の動作になっています)
ver2.3.0 ・MoveTo実行時に移動先に空き容量がない場合の動作を継続するかの質問に変更
ver2.3.2 ・キャッシュ検索の合計ファイルサイズ表示
・MoveToの移動元指定にOptionタブのListを使用できるように変更(FileModeのみ)
ケアレスミス続いております 見つかったクリティカルなバグからつぶしております。
[EoF]