Downloadsフォルダ自動整理システムの設計と実装

Downloadsフォルダって、気づいたらカオスになってませんか?

「あとで整理しよう」が積み重なって、気づいたら数百ファイルが放置されている。そんな悩みを解決するために、週次で自動整理するシステムを作りました。

要件定義

まず、どんな機能が必要かを整理しました。

必須要件:
– 週に1回、自動でDownloadsフォルダをスキャン
– ファイルの種類・名前・日付から適切な移動先を判定
– 誤分類を防ぐため、信頼度が低いファイルは手動確認用フォルダへ
– 削除は一切しない(すべて移動のみ)

あったらいい機能:
– 詳細ログ出力(CSV + Markdown)
– ドライラン機能(テスト実行)
– 実行結果のサマリー表示

システム設計

全体の流れはシンプルです。

1. Downloadsフォルダをスキャン
2. 各ファイルを分析(拡張子、名前、更新日時)
3. 移動先を判定(信頼度スコア付き)
4. 信頼度が高い(0.8以上)→ 自動移動
5. 信頼度が中(0.5-0.8)→ 手動確認フォルダへ
6. 信頼度が低(0.5未満)→ そのまま残す
7. ログ出力

ポイントは3段階の信頼度判定です。これがあることで、誤分類のリスクを大幅に減らせます。

実装のポイント

1. ファイル分類ロジック

拡張子だけでなく、ファイル名のパターンマッチも組み合わせました。

例:
hogehoge_contract.pdf → 「契約」キーワード検出 → 書類フォルダ(信頼度0.9)
screenshot_2026.png → 「screenshot」検出 → メディアフォルダ(信頼度0.85)
temp_123.txt → 「temp」検出 → 削除候補フォルダ(信頼度0.7)

2. 古いファイルの扱い

90日以上前のファイルは「保管庫」へ自動移動。これで現在進行中のプロジェクトと過去のファイルを分離できます。

3. cronでの定期実行

毎週日曜の朝4時に実行するよう、cronジョブを設定しました。

0 4 * * 0 /path/to/downloads_organizer.py --mode production

深夜実行なので、作業の邪魔になりません。

導入後の効果

テスト実行では3ファイル中3ファイルを正しく分類できました(100%)。

本番運用は来週日曜から開始予定ですが、初回1-2ヶ月は高信頼度ファイルのみ自動移動し、中信頼度ファイルは手動レビューを挟む予定です。

慣れてきたら、中信頼度ファイルも自動化する方針。

まとめ

Downloadsフォルダの自動整理システムを作ることで、「あとで整理しよう」の負債から解放されます。

重要なのはいきなり全自動化しないこと。段階的に信頼度を上げていくことで、誤分類のリスクを最小限に抑えられます。

週次で自動整理される未来、楽しみです。