DupCheckは重複しているとみなす条件として、ファイル名、ファイル・サイズ、日付、ファイルの内容の概略(CRC16)、などの項目を組み合わせることができます。
各ファイルごとに、これらの情報をもとにインデックスを作成します。
このインデックスが一致したファイルを重複しているファイルとみなします。
ファイルの重複検査では内容の完全一致を検査するわけではありません。そのため、スピーディーに検査することができます。
ファイル名をもとに検査する場合はファイル名が一致しない限り重複とみなしません。 同様に、サイズや日付が条件とされている場合、これらが一致しないと重複とはみなされません。
これらは高速に検査できる反面、データーベースやアイコン画像等のサイズが一定であったり同時刻にたくさん作成されるようなファイルの識別には弱いという弱点があります。
「CRC16」を条件とした場合、これはファイルの内容をもとにCRC16を算出して、これをファイルの識別とします。
CRC16を作成するためには1度だけファイルをすべて読み込んで計算する必要がありますので、ファイル名や日付などから検査する場合とくらべて遅くなります。
CRCコードはファイルの内容から作り出されるチェック値となり、もし、ファイルの内容が完全に一致している場合には「CRC16」の値も一致することになります。
逆にいえば、これが不一致であれば違うファイルということになります。(ただし、一致しても同一であるとは限りません。しかし通常は異なるファイルでCRC16が一致する可能性はかなり低いといえます。)
このCRC16はファイルサイズとともに条件とすることで確実性を高められます。
CRC16の計算にはファイルサイズに応じて時間がかかるため、大きなファイルをCRC16で検査せずスキップさせることができます。
DupCheck.iniファイルの[CRC16]セクションに「LoadLimit」キーを設定し、ここで指定された値(KB)以下のファイルの場合のみCRC16をチェックします。0を指定した場合は、この制限はありません。(デフォルトは0です)
外部DLLを作成することで任意の重複条件を作成できます。
このDLLは、Visual Studio 2008で作成する必要があります。
DupCheckのUnicode対応のために将来、このユーザー定義DLLのインターフェイスは変更が予定されています。
テキストファイルであればファイルの先頭部分4096文字を確認できます。
バイナリファイルならば、16進数表示に変換した先頭部分4096文字を確認できます。
拙作フリーウェアである「ImgClassing2x」がインストールされていれば、SeraphyThumbCtlコントロールによる画像のサムネイル表示も可能です。
(※現在、利用できません。)
DupCheckの検索はスピード重視のため完全に内容が一致しているか検査するものではありません。
しかし、検索結果によって重複と思われるファイルが絞り込まれたら、ファイルの内容が完全に一致するか検査することができます。
インデックスによる重複ファイルの絞込みが完了したあとは「編集」メニューにある「すべてを完全比較」を実行することにより、重複リストに表示されている、すべての項目について完全比較検査を行うことができます。
完全に一致した場合はピンクの「重複」マークがつけられます。
また、すべてが一致しなければ「非重複」マークがつけられます。
一部重複があるが重複しないものもある場合は「未チェック」状態になります。
「削除」マークのつけられたファイルを一括して削除・移動したり、「複製」マークのつけられたファイルを一括して複製することができます。
これらのマーキングには、特定フォルダ以下を一括してマークする機能などがあります。
結果はレポートとしてテキストファイルに保存することも可能です。 ファイルの形式は簡単なのでスクリプト言語で次の処理をさせることも用意と思われます。