SuperAPI AI 工具集

smart-file-organizer

办公与效率

查看项目

更新于 10-16 01:58

技能介绍

Smart File Organizer(来源:skills.sh/surrealier/smartfileorganizer/smart-file-organizer)是一个通过读取文件真实内容来批量重命名文件、并可选择性重组目录结构的技能。其核心目标是恢复损坏的文件名、基于内容生成有意义的新名称,并在可选情况下把文件整理进逻辑化的分类文件夹,同时提供安全的回滚映射。

用途

它的适用对象是需要批量整理大量命名混乱文件的目录。它分析目标目录(含所有子目录)中的文件内容,把文件重命名为反映其内容的名称,并可选择重新整理为分类文件夹结构。

三种模式

  • rename-only(默认):基于内容分析在原地重命名文件。
  • full-organize:重命名文件并把它们重组进分类文件夹结构(创建、重命名、合并文件夹)。
  • collect:跨目录扫描文件,把符合用户指定用途的文件复制到单一输出文件夹,不重命名也不移动原文件。

使用方式(流程)

第一步:收集参数。需要用户提供:目标目录(必填的绝对路径);模式(默认 rename-only;若为 collect 还需说明要收集哪类文件);允许出现在文件名中的语言(默认匹配原文或英文,非允许语言的内容会被翻译为允许语言,缩略语和专有名词除外);文件过滤(包含/排除的扩展名,默认全部);最大递归深度(默认不限);重命名严格度(默认 recovery)。若用户只给了目录而未指定其他选项,则使用默认值继续。

第二步:扫描与清点。递归列出目标目录下所有文件,跳过隐藏文件/目录(以 . 开头)及 node_modules、.git、pycache 等常见忽略模式。默认跳过源代码文件(如 .py、.cpp、.c、.h、.hpp、.js、.ts、.jsx、.tsx、.java、.go、.rs、.rb、.cs、.swift、.kt、.scala、.sh、.bat、.ps1 以及 Jenkinsfile*、Makefile、Dockerfile、*.cmake 等 CI/CD 配置),可用 --include-code 覆盖;跳过可执行/安装文件(.exe、.msi、.appimage、.dmg)保留原名。检测疑似数据集目录(同一扩展名 100+ 文件、顺序或哈希式命名、名称命中 train/val/dataset/images 等常见模式、或批量数据旁伴随标注文件),逐一提示用户选择跳过或纳入处理。生成清单(路径、大小、扩展名、修改日期),并处理编码损坏的目录名与文件名(尝试 EUC-KR、CP949、Shift_JIS、GB2312、Latin-1 解码)。超过 100 个文件时先请用户确认或建议收窄范围;超过 50 个文件时按每批最多 50 个分批处理(子代理可并行最多 4 批),子代理执行读取分析无需确认,仅最终 dry-run 映射需用户批准;合并后按名称去重冲突并做完整性守卫,确保映射覆盖 100% 清单文件。

第三步:分析文件内容。严格度决定行为:uniform 模式下所有非代码文件都必须依据实际内容重命名为规范化格式,原名称一律视为不可靠;recovery 模式(默认)只重命名明显损坏或无意义的名字,先做名称质量启发式预筛选以减少不必要的读取。文本类文件读取前 10%(最少 5 行,上限 200 行或 4 KB);文档(.pdf、.docx、.xlsx、.pptx、.hwp、.hwpx)提取前 10% 页面的文本(最少 1 页,上限 8 KB);图片检查 EXIF/元数据,若具备视觉能力则直接分析图像内容,否则依次从同目录文件、时间戳、文件名片段、父目录名做上下文推断,仍无法确定则移入 _unknown/;二进制/未知文件仅用元数据与扩展名;无法分析的文件移入 <目标目录>/unknown/ 并保留原名、记录原因。命名规则:属性间用 _ 分隔、多词属性内用 - 连接,最多 3–6 个属性,保留原扩展名,有明确日期时加 YYMMDD 前缀,避免 document、file、untitled 等泛化名,且必须从内容重新生成而非照抄原名。

第四步:生成重命名映射(dry run)。以 JSON 构建映射;超过 30 个文件时先给摘要(重命名/保留/未知数量,按扩展名分布),用户要求或文件不超过 30 时展示完整列表。用户可批准、要求修改、逐条编辑、排除某些文件或取消,可反复迭代直到明确批准;未获明确批准不得执行。用户批准后须先保存回滚映射再执行任何文件操作:bash <skill-path>/scripts/rename-map.sh save <target-dir>,生成 <target-dir>/.file-organizer-map.json。

第五步:执行重命名。保存回滚映射后逐个重命名文件;大批量(50+)每 25 个报告进度;遇到名称冲突追加数字后缀(如 report_Q3_2.pdf);完成后用 bash <skill-path>/scripts/rename-map.sh reconcile <target-dir> 核对回滚映射,使其只包含实际发生的操作;再做执行完整性检查,对照原始清单找出既未重命名也未显式跳过的文件并重试。

第六步:重组(仅 full-organize 模式)。在重命名后分析现有文件夹结构与文件内容分类,提出新的文件夹结构方案,可能包括为不存在的分类创建新文件夹。

适用场景

  • 文件名损坏或为乱码、纯数字、哈希、IMG_、DSC_、Untitled 等无意义名称的目录。
  • 需要按内容而非文件名来统一命名规范的情况(uniform 模式)。
  • 需要把散落各处的同类文件(如简历相关、数据集、可丢弃文件)汇总到一个输出文件夹(collect 模式)。
  • 需要把文件按类别重组进逻辑文件夹结构(full-organize 模式)。

限制

  • 默认不处理源代码文件与可执行/安装文件,除非显式覆盖。
  • 对二进制文件不读取内容,仅依赖元数据与扩展名;无法分析的文件被移入 _unknown/。
  • 需要用户显式批准后才会执行,且执行前保存回滚映射。
  • 文档中未提供具体的收费方式、价格、平台支持、处理效果或性能保证等信息,这些内容暂未提供。