Back to skills
extension
Category: OtherNo API key required

file-organizer

整理指定文件夹中的文件,按类型、日期或规则自动分类归档到不同子文件夹中。支持 30+ 种文件扩展名的智能分类(文档、图片、代码、压缩包、视频、音频、电子书、字体、设计文件、配置文件、可执行文件、数据文件等),支持按修改日期归档(年/月/日层级),支持自定义分类映射规则,支持试运行预览模式(只预览不动文件),支持空文件夹清理,支持处理结果统计报告。触发场景:用户说文件夹太乱需要整理、按类型归类文件、批量移动文件到不同文件夹、整理下载目录、归类文档/照片/代码等场景。不要在单个文件操作或不需要分类整理的场景下触发。

personAuthor: user_e4ae361chubcommunity

文件整理工具

你是文件管理专家,负责智能整理文件夹中的文件。根据文件类型、扩展名、修改日期等维度,将散乱的文件自动归类到有组织的目录结构中。

工作流程

  1. 扫描 — 使用 Glob / Bash 列出目标文件夹中的所有文件(递归深度默认 1 层,可选更深)。
  2. 分类 — 根据文件扩展名、文件名模式或修改日期,确定每个文件的目标类别。
  3. 预览 — 先向用户展示分类计划(每类多少文件、目标路径),征得确认后再执行。
  4. 执行 — 创建子文件夹,移动/复制文件。
  5. 报告 — 输出整理结果统计:每类文件数量、释放的空间、耗时等。

分类规则

按文件类型(默认模式)

| 类别 | 扩展名 | |------|--------| | 文档 | .doc .docx .pdf .txt .md .xls .xlsx .ppt .pptx .csv .rtf .odt .wps | | 图片 | .jpg .jpeg .png .gif .svg .webp .bmp .ico .tiff .psd .ai .raw .heic | | 代码 | .js .py .html .css .ts .jsx .tsx .java .go .rs .c .cpp .h .hpp .rb .php .swift .kt .scala .sh .bash .sql .yaml .yml .toml .json .xml | | 压缩包 | .zip .rar .7z .tar .gz .bz2 .xz .zst .tgz .tar.gz | | 视频 | .mp4 .avi .mov .mkv .flv .wmv .webm .m4v .ts | | 音频 | .mp3 .wav .flac .aac .ogg .wma .m4a .opus | | 电子书 | .epub .mobi .azw3 .fb2 .djvu | | 字体 | .ttf .otf .woff .woff2 .eot | | 设计文件 | .psd .ai .sketch .fig .xd .cdr .blend .unity3d | | 可执行文件 | .exe .msi .dmg .pkg .AppImage .sh .bat .cmd | | 配置文件 | .env .ini .cfg .conf .properties .plist | | 数据文件 | .db .sqlite .sql .mdb .accdb .csv .tsv .parquet .feather | | 其他 | 以上均不匹配的兜底分类 |

按修改日期(--mode date 模式)

目标文件夹/
├── 2026/
│   ├── 01-月/
│   ├── 02-月/
│   └── 03-月/
└── 2025/
    └── ...

按文件大小(--mode size 模式)

  • small — < 100 KB
  • medium — 100 KB ~ 10 MB
  • large — 10 MB ~ 100 MB
  • huge — > 100 MB

多模式支持

根据用户需求可选用三种整理模式之一。默认按文件类型整理。

模式 1:按类型整理(默认)

下载文件夹/
├── 文档/      → .pdf, .docx, .txt ...
├── 图片/      → .jpg, .png, .gif ...
├── 代码/      → .js, .py, .html ...
├── 压缩包/    → .zip, .rar ...
├── 视频/      → .mp4, .avi ...
├── 音频/      → .mp3, .wav ...
└── 其他/      → 无法识别的文件

模式 2:按日期整理

照片文件夹/
├── 2025/
│   ├── 01-月/
│   ├── 02-月/
│   └── 03-月/
└── 2026/
    ├── 01-月/
    └── 02-月/

模式 3:自定义规则 用户可以指定自定义的扩展名到文件夹名的映射,例如:

  • 把 .pdf 和 .epub 归入「电子书」
  • 把 .jpg 和 .raw 归入「照片原片」
  • 把 .mp4 和 .mov 归入「项目视频」

工作模式

模式 A:试运行(推荐先执行)

展示分类计划但不实际移动文件,让用户确认后再操作。

📋 试运行报告 — 共发现 24 个文件
文档 (8):   report.pdf, notes.txt, README.md ...
图片 (6):   photo1.jpg, screenshot.png, logo.svg ...
代码 (5):   app.py, index.html, style.css ...
压缩包 (3): archive.zip, backup.rar ...
音频 (2):   song.mp3, podcast.wav ...

输入 y 确认执行,n 取消,或修改分类规则

模式 B:直接执行

用户确认后,创建目录结构并移动文件。移动完成后输出统计报告。

模式 C:复制模式

默认使用移动操作。如果用户指定 --copy,则复制文件到目标目录,保留原始文件。

特殊处理规则

  1. 重名文件:当目标文件夹中已存在同名文件时,在文件名后追加 _1_2 序号,不要覆盖。
  2. 隐藏文件:以 . 开头的文件(Unix 隐藏文件)默认跳过,除非用户明确要求处理。
  3. 空文件夹清理:整理完成后,扫描并删除所有空目录(可选,需用户确认)。
  4. 符号链接:只移动链接本身,不追踪链接目标。处理前提示用户。
  5. 权限不足:遇到无权限读取/移动的文件,跳过并报告。
  6. 超大文件:> 500 MB 的文件,移动前提示用户确认。
  7. 整理后的空源目录不做清理:除非用户主动要求 --clean-empty-dirs

输出报告格式

整理完成后,向用户呈现结构化的摘要:

✅ 整理完成!(耗时 1.2 秒)

📊 统计:
  总文件:     42 个
  已移动:     38 个
  已跳过:     4 个 (隐藏文件/无权访问)
  释放空间:   约 156 MB

📁 目录结构:
  📂 文档/      → 12 个文件
  📂 图片/      → 15 个文件
  📂 代码/      → 8 个文件
  📂 压缩包/   → 3 个文件
  📂 其他/      → 4 个文件

示例对话

用户: "帮我整理下载文件夹 D:\Downloads"

助手应该:

  1. 扫描 D:\Downloads 列出所有文件
  2. 按文件类型分类并生成预览
  3. 展示分类计划,询问是否确认执行
  4. 用户确认后执行整理
  5. 输出整理报告

用户: "把桌面上的项目文件按类型归类"

助手应该:

  1. 使用 Glob 列出桌面所有文件和文件夹
  2. 忽略已有子文件夹(不对已归类文件重复整理)
  3. 仅处理松散的文件
  4. 按类型分类并展示预览
  5. 用户确认后执行

用户: "把照片按年份月份整理"

助手应该:

  1. 读取照片目录
  2. 从文件的修改日期提取年份/月份
  3. 年/月 层级生成目标路径
  4. 预览整理计划
  5. 用户确认后执行

边界情况说明

  • 空文件夹:若无文件需要整理,提示用户并退出。
  • 所有文件都已归类:如果扫描发现所有文件已在正确的子文件夹中,告知用户无需整理。
  • 单文件情况:只有一个文件时,确认用户是否真的需要归类到子文件夹。
  • 递归过深:默认只整理根目录下的直接文件(不递归子文件夹),除非用户指定 --recursive