購入ファイルの重複をSHA-256で確認する:同名・別版・バックアップを区別
重複候補はまずサイズで絞り、ハッシュで内容を比較します。一致したファイルにもバックアップや別作品の添付という役割があるため、削除は用途を確認してから判断します。
公開 · 更新 · FaultNote 編集方針
この記事が役立つ人・作業前の準備
- 重複ダウンロードが増えて原本を残す基準を決めたい人
用意するもの
- 一作品の候補ファイルだけを確認用フォルダーへ集める
- バックアップの保存先と版の記録を確認する
1. 同じ名前と同じ内容を分けて考える
Game.zipとGame(1).zipは同じ内容かもしれませんが、別の更新版の可能性もあります。逆に違う名前でも内容が同じことがあります。ファイル名は候補を探す手掛かりで、同一性の結論には使いません。
展開済みフォルダーの重複と原本ZIPの重複も別です。ZIPの圧縮設定やタイムスタンプが違うとハッシュは変わり得るため、原本のハッシュ不一致だけで中の作品が完全に違うとは断定しません。
2. 大きな一覧を作る前にサイズで絞る
エクスプローラーを詳細表示にして候補のサイズを比べます。バイト数が違えばファイル全体は同一ではありません。同じサイズなら、作品ID、取得日、配布版の記録を見て比較する組を決めます。
何万ファイルものライブラリーを最初からハッシュ化するより、一作品の原本から始めます。巨大ファイルの読み取りには時間がかかるため、ゲーム更新や別の大量コピーが進んでいないときに実施すると負荷を抑えやすくなります。
3. LiteralPathで二つの原本を読み取る
下の例は二つの候補にSHA-256を計算して表示します。実際のパスへ置き換え、出力のPathとHashを両方確認します。LiteralPathは角括弧を含む名前をワイルドカードとして解釈させず、そのまま対象にします。
コマンドはファイルを書き換えません。読み取りエラーが出た場合は、そのファイルを同一と扱わず、パス、アクセス権、ファイルの使用状況を確認します。エラーを消して空欄同士を一致と判定しないでください。
Get-FileHash -LiteralPath 'D:\Downloads\Game.zip','D:\Downloads\Game (1).zip' -Algorithm SHA256 | Select-Object Path, Hash4. 結果を役割と合わせて判断する
SHA-256とサイズが同じなら実用上、同じバイト内容の候補として扱えます。どちらを残すかは作品フォルダーに入っている原本、正しい版の記録がある方、バックアップ上の役割を見て決めます。名前だけを最新に変えて旧版を新しい版と扱わないでください。
不一致なら旧版、新版、別の追加物、破損などを切り分けます。配布元が公開したハッシュがあればそれと比較し、自分で計算した二つの値が一致しただけで販売元の保証を得たとは考えません。
5. すぐ削除せず確認待ちへ隔離する
不要と判断したDownloads内のコピーだけを、日付付きの確認待ちフォルダーへ移します。Originalsとバックアップはこの段階でまとめて削除しません。元のパス、残す先、ハッシュをメモすると戻す根拠が残ります。
保留中に残した原本をテストし、任意の必要ファイルを展開できるか確認します。誤分類が見つかったらメモに沿って候補を戻します。保存期間は自分の運用に合わせて決め、容量不足でも未確認の一括削除は避けます。
6. 重複が戻る原因を記録で減らす
購入一覧に原本の保存先と確認済みハッシュを書きます。次にダウンロードする際は既存版と更新説明を確認し、新版は別の版フォルダーへ、同版の再取得は比較用へ置くと混乱を減らせます。
ハッシュ記録はファイルを元に戻す機能ではありません。原本やバックアップを失った場合に値だけで復元できないため、記録とファイルの両方を保持します。
同名ZIP・更新ZIP・バックアップの判断例
AのGame.zipとBのGame(1).zipのサイズとSHA-256が一致し、どちらも同じ版の再取得と分かるなら、原本フォルダーにあるAを残し、DownloadsにあるBを確認待ちへ置けます。一方、X:/Backupの同じハッシュのファイルは故障時の戻り先なので、この判断では削除候補にしません。
CのGame.zipは同名でもハッシュが違い、配布履歴に更新版と書かれていれば別版として保管します。更新内容の確認前に大きい方だけを残すと、旧版のセーブや説明書が必要なときに戻れなくなります。容量や名前の好みではなく、版と保管理由を記録して判断します。
Dはハッシュが違うものの、配布元の版表示は同じというケースです。再圧縮、同梱説明書の差し替え、取得不良等を区別するため、両方のアーカイブをテストし、一覧と配布説明を確認します。ファイル名を同じにしてから比べる必要はありません。
以上の確認を表にして、残す原本、別版として残す原本、確認待ち、バックアップの四つの役割を記します。役割が分かれば、同じハッシュが何件あるかよりも、何件が本当に不要な再取得かを見て片付けられます。
確認待ちから削除判断までの具体的な点検
確認待ちへ移す前に、元のパスと残すパスを同じ行へ記録します。作品IDが違うフォルダーにも同じファイルがあるなら、共通説明書や素材である可能性があるため、関連付けを失わないようそれぞれの台帳を確認します。異なる作品に必要な同一ファイルを一つへ集約する操作は別の検討です。
残す原本のアーカイブテスト、購入記録との対応、バックアップの存在を確認します。音声等の非アーカイブなら必要な閲覧・再生確認を自分で行い、確認した範囲を残します。原本を全部使えると断定するために、先頭ファイルだけを試した結果を拡大しません。
削除後に問題が起きたときの復元先も決めます。確認待ちは同じドライブ故障へのバックアップではないので、保留期間だけで安心せず独立したコピーを持ちます。ごみ箱で戻せるかは削除場所や方法によるため、必ず残るとは仮定しません。
削除した候補の行は台帳から消すより、整理日と残す先を追記すると経緯が残ります。新たに同じファイルを取得したときはその記録と比較し、再取得の目的が更新確認なのか紛失補完なのかを明記します。自動削除へ変える前に、同じルールで複数の例外を処理できたか見直します。
表は横にスクロールできます →
| 状況 | 次の確認 |
|---|---|
| 同名・同ハッシュ・同版 | 余分な取得コピーか役割を確認 |
| 同名・異なるハッシュ | 版・再圧縮・破損を切り分ける |
| 同ハッシュ・バックアップ先 | 意図した復元用コピーとして保管 |
注意点・利用条件
- 同じハッシュでも意図したバックアップは残します
- 原本のハッシュ不一致は、作品内容の違いだけでなく再圧縮等でも起こります
よくある質問
サイズが同じなら重複ですか?
同じサイズの別内容はあり得ます。候補を絞る情報として使い、ハッシュも比較します。
フォルダーにも同じコマンドを使えますか?
Get-FileHashはファイルを対象にします。フォルダーは中の相対パスと各ファイルのハッシュを一覧にして比較します。
ハッシュでファイルの安全性も判定できますか?
同一性比較の材料です。悪意ある同じファイルも同じ値になるため、安全性や権利は別に確認します。
更新日時が新しい方を残せばよいですか?
再取得やコピーで日時が変わり得ます。配布版と購入履歴を確認し、必要な旧版も保管理由を付けて残します。
出典・確認日
情報確認日:。仕様・操作方法・価格などの確認に使用した出典を掲載しています。適用条件や現在の情報は各リンク先で確認してください。