Clean-Scan(クリーン・スキャン)
概要
Clean-Scanは、Windowsのパワーユーザー向けに作られたPython製コマンドラインツールで、重複ファイル(同一内容のファイル)を安全に検出して不要なものを削除し、さらに空になったディレクトリ構造も掃除してディスク領域を回復します。高速化のために段階的な絞り込み(ファイルサイズ→部分的ハッシュ→完全ハッシュ)を採用し、誤判定を減らしつつスキャン速度を確保。利用時の安全性を重視して確認やドライランの選択肢があり、Windowsで手軽に実行できるバッチファイルも同梱されています。軽量で導入が簡単なユーティリティです。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 8
- ファイル数: 3
- メインの言語: Python
主な特徴
- トリプルチェック検証(ファイルサイズ→部分ハッシュ→完全ハッシュ)による高速かつ安全な重複検出
- 空ディレクトリの再帰的クリーンアップ機能
- Windows向けの手軽な起動(バッチファイル同梱)とCLI操作
- ドライランや確認プロンプトなど、安全志向の削除フロー
技術的なポイント
Clean-Scanの技術的な要点は、「効率的な絞り込み」と「安全な削除フロー」に集約されます。まず一般的な重複検出アルゴリズムにならい、全ファイルを一律でハッシュするのではなく段階的に候補を減らします。第一段階でファイルサイズでグループ化し、サイズが一致するものだけを次の段階へ回すことでI/O負荷を大幅に削減します。第二段階ではファイルの先頭・末尾など一部領域の高速ハッシュ(もしくはサンプリング)を行い、さらに候補を絞ります。最後に必要な対象に対して完全ハッシュ(例:SHA-256やMD5などのアルゴリズム)を実施して同一性を確定します。
実装面では、ファイル走査においてos.scandirやイテレータを使ってメモリ使用量を抑える設計が考えられます。大容量ファイルを扱う場合はチャンク単位で読み込みながらハッシュを更新することでメモリに優しく処理できます。Windows環境特有のパスや文字エンコーディング、アクセス権エラー、ロックされたファイルへの対処も重要で、例外処理やスキップロジックを適用して頑健性を高めることが期待されます。
パフォーマンス向上のために並列処理(multiprocessingやThreadPoolExecutor)を使って複数ファイルのハッシュ計算やディスク走査を並列化するアプローチも有効です。ただしディスクI/Oがボトルネックになりがちなため、スレッド数の調整やI/Oバウンド向けの設計が必要です。空フォルダの削除は再帰的に下から処理する(子フォルダを先に削除して親フォルダが空になったら削除)という典型的な戦略が想定されます。
安全性面では、削除操作前にドライランモードで実行結果を表示したり、ユーザー確認やログ出力を行って意図しない削除を防止します。Windows向けにごみ箱を利用する設計(サードパーティのsend2trashなど)を採用すれば、誤削除からの復元を容易にできます。CLI実行はargparseでオプションを提供し、除外パターンや最小サイズフィルタ、出力フォーマット(テキスト/JSON)などを設定可能にすると実運用性が上がります。
本リポジトリはファイル数が少なくシンプルな構成で、clean-scan.pyが主要なロジックを担い、clean-scan.batでWindows上から簡単に起動できる点がユーザービリティの良さにつながっています。拡張としてGUI化やプレビュー機能、より詳細なレポート出力などが考えられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- clean-scan.bat: file
- clean-scan.py: file
まとめ
Windowsで手軽に使える、安全志向の重複ファイル&空フォルダ除去ツールです。
リポジトリ情報:
- 名前: clean-scan
- 説明: Clean-Scan is a high-performance Python CLI tool designed for Windows power users. It helps you reclaim disk space by safely identifying identical files and cleaning up empty directory structures left behind.
- スター数: 1
- 言語: Python
- URL: https://github.com/Lunedor/clean-scan
- オーナー: Lunedor
- アバター: https://avatars.githubusercontent.com/u/33136986?v=4
🧹 Clean-Scan: Pro Duplicate & Empty Folder Remover
Clean-Scan is a high-performance Python CLI tool designed for Windows power users. It helps you reclaim disk space by safely identifying identical files and cleaning up empty directory structures.
✨ Key Features
- ⚡ Triple-Check Verification: Uses a high-speed three-step process (File Size -> F…
