主要な修正事項 / lasted main fix. check.
DHFiND はローカルコンピュータ内に保存されたファイルから,重複ファイル (同じハッシュ (SHA1) 値を持つファイル) を検出する Windows 用ソフトウェアです. 検索ファイルに対してデータベースを作成するため, 2 度目以降の検索を高速にすることができます.
Notice: 高速性に対して以下のような欠点があります.
これらの欠点が気になる場合は,削除前に "Compare >>" ボタンを押してファイルの完全比較を行って下さい.
zip ファイルを適当なフォルダに解凍して 「DHFiND.exe」 を起動してください.
レジストリは使用しません.フォルダごと削除してください.
「フォルダ追加 ...」 にてフォルダを指定し「スレッド開始 >>」ボタンを押して検索を開始します.検索設定ダイアログが開くので,デフォルト設定で検索を行う場合はそのまま [OK] ボタンを押します.
"Safe" に指定したフォルダ以下のファイルは,自動選択でチェックは付かず,手動でチェックをつけても "Delete" ボタンで削除されません.
$Enable は 0 (無効) か 1 (有効) を指定.$ViewerPath は SmartViewer のパスを指定.結果リストでマウスホバー時に,そのファイルのパスが SmartViewer にコマンドライン引数で送られます (SmartViewer.exe $FilePath).また DHFiND 終了時に終了メッセージが送られます (SmartViewer.exe /close).
結果リストでのマウスホバー時にコマンドライン引数を通じてファイルパスが送られる (SmartViewer.exe $FilePath) ので,そのファイルの内容を表示して下さい.また DHFiND 終了時に SmartViewer.exe /close が送られるので,終了して下さい.
ファイルを全て取り込んだ後で,ファイルサイズでソートし,同じファイルサイズで一時グループを作ります.この一時グループ内のファイルの SHA1 値をすべて算出し, SHA1 値でソートした後,SHA1 値が同じファイル範囲を切り出してグループを作成します.
SHA1 算出をする時,まずデータベースから full_path, file_size, create_time, last_write_time が同一なファイルを検索し,もし存在すればデータベースの content_hash をそのファイルの SHA1 値として扱います.存在しなかった場合は検索されたファイルから SHA1 値を算出し,データベースに登録します.
132.7万ファイル (377 GB) のファイル群を通常の「重複ファイル検索 (Normal)」で default 処理した場合,データベースが空の場合処理終了まで 22 時間ほどかかった.このときの検索途中のメモリ使用量は約 1 GB 程.この状態から 3500 ファイルほどの新規ファイルをフォルダ以下に追加して「重複ファイル検索 (Normal)」を行った場合(約130万ファイルがデータベースに登録あり,3500ファイルがデータベースにない状態),処理終了まで 70 分ほどかかった.
検索結果 16万 Group, 40万 File くらいの結果を保存するのにかかる時間は約 1 min 30 min, 読み込み時間は約 1 min,データベースファイルサイズは約 155 MB.
・NFileHashDatabase データベース
- NFileSQL.db
テーブル名 file_info_sha1, カラム名 full_path, content_hash, file_size, create_time, last_write_time, drive, dir, file_name, ext.
full_path : ファイルのフルパス(primary key)
content_hash : ファイル内容の SHA1 値
file_size : ファイルサイズ(byte)
create_time : ファイル作成時間.FILETIME 秒数 (1601 年 1 月 1 日からの 100 ナノ秒単位).
last_write_time : ファイル更新時間.FILETIME 秒数 (1601 年 1 月 1 日からの 100 ナノ秒単位).
drive : フルパスの内 Drive
dir : フルパスの内 Dir
file_name : フルパスの内 FileName(拡張子を含まない)
ext : フルパスの内 Ext (拡張子, ドット含む (例: .txt, .exe, .jpg ) )