目录结构统计与排序Prompt

关联知识库:目录结构统计与排序Prompt

目录结构统计与排序Prompt

功能说明

自动分析项目根目录结构,统计文件夹和文件数量,计算占比,并按文件数量排序生成结构化的目录树。统计完成后,自动更新文件夹名称,添加文件数量和占比信息。

执行步骤

第一步:扫描目录结构

  1. 使用 list_dir 工具扫描项目根目录
  2. 识别所有文件夹和文件
  3. 排除隐藏文件夹(.git, .idea, .github 等)和工具文件夹(scripts 等)

第二步:统计文件数量

对每个根目录文件夹:

  1. 递归统计该文件夹下的所有文件数量(不包括隐藏文件)
  2. 统计根目录直接文件数量
  3. 计算总文件数(所有文件夹文件 + 根目录文件)

第三步:计算占比

对每个文件夹:

  • 占比 = (文件夹文件数 / 总文件数) × 100%
  • 保留1位小数

第四步:排序

  1. 按文件数量从大到小排序
  2. 根目录文件单独列出,不参与排序

第五步:生成结构化输出

生成统计报告文档,包含完整的目录结构和统计数据。

序号规则

  • 根目录文件夹:使用实心圆圈序号
    • ❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿
  • 一级子文件夹:使用空心圆圈序号
    • ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩
  • 二级子文件夹:使用空心圆圈序号(继续编号)
    • ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳

输出格式

##  目录结构统计

### 根目录文件夹(按文件数量排序)

❶ [文件夹名称] (X个文件,XX.X%)
- ① [子文件夹1] (Y个文件,YY.Y%)
- ② [子文件夹2] (Z个文件,ZZ.Z%)

❷ [文件夹名称] (X个文件,XX.X%)
...

### 根目录文件
- [文件名1]
- [文件名2]
...

### 统计汇总
- 总文件夹数:X个
- 总文件数:X个
- 根目录文件数:X个

技术实现要点

文件统计命令

# 统计单个文件夹文件数(排除隐藏文件)
find "文件夹路径" -type f ! -path "*/.*" ! -name ".*" 2>/dev/null | wc -l

# 统计总文件数(排除隐藏文件夹和工具文件夹)
find . -type f ! -path "./.git/*" ! -path "./.idea/*" ! -path "./.github/*" ! -path "./scripts/*" ! -name ".*" 2>/dev/null | wc -l

排序逻辑

  1. 使用文件数量作为主排序键
  2. 文件数量相同时,按文件夹名称字母顺序排序
  3. 根目录文件单独列出,不参与排序

占比计算

  • 使用总文件数作为分母
  • 保留1位小数
  • 如果占比小于0.1%,显示为"<0.1%"

第六步:自动更新文件夹名称

重命名规则

  1. 根目录文件夹:在文件夹名称后添加统计信息

    • 格式:[原名称] (X个文件,XX.X%)
    • 示例: 工程实践 工程实践 (300个文件,67.7%)
  2. 一级子文件夹:同样添加统计信息

    • 格式:[原名称] (X个文件,XX.X%)
    • 示例: System Components System Components (73个文件,16.5%)
  3. 处理已包含统计信息的文件夹

    • 如果文件夹名称已包含 (X个文件,XX.X%) 格式,则更新为最新统计数据
    • 如果格式不匹配,则追加新的统计信息

重命名流程

  1. 生成重命名计划:列出所有需要重命名的文件夹

    • 显示:[原名称][新名称]
    • 统计:需要重命名的文件夹数量
  2. 用户授权确认(重要)

    • 根据workspace规则,必须先得到用户授权
    • 展示修改前和修改后的样例
    • 等待用户确认后再执行
  3. 执行重命名

    • 使用 run_terminal_cmd 执行 mv 命令
    • 逐个重命名,确保路径正确
    • 记录重命名结果

重命名命令示例

# 根目录文件夹重命名
mv "./ 工程实践" "./ 工程实践 (300个文件,67.7%)"

# 子文件夹重命名(需要完整路径)
mv "./ 工程实践/ System Components" "./ 工程实践/ System Components (73个文件,16.5%)"

注意事项

  • ⚠️ 必须用户授权:重命名操作前必须得到用户明确授权
  • ⚠️ 路径处理:注意处理文件夹名称中的特殊字符和空格
  • ⚠️ 备份建议:重要项目建议先备份或使用版本控制
  • ⚠️ 批量操作:逐个重命名,避免批量操作导致错误
  • ⚠️ 错误处理:如果重命名失败,记录错误并继续处理其他文件夹

输出示例

##  目录结构统计

### 根目录文件夹(按文件数量排序)

❶  工程实践 (416个文件,93.9%)
- ①  System Components (54个文件,12.2%)
- ② ️ Engneering Thinking (22个文件,5.0%)
- ③  What Happened (14个文件,3.2%)
...

❷  AI技术观察日志 (70个文件,15.8%)
- ①  arXiv Papers Archive (13个文件,2.9%)
- ② ️ Anthropic Engineering (8个文件,1.8%)
...

# ️ prompt-toolkit
...

### 根目录文件
- AGENTS.md
- README.md

### 统计汇总
- 总文件夹数:6个(排除scripts等工具文件夹)
- 总文件数:444个
- 根目录文件数:2个

⚠️ 注意事项

  1. 排除规则:默认排除 .git, .idea, .github 等隐藏文件夹,以及 scripts 等工具文件夹
  2. 文件计数:只统计实际文件,不包括文件夹本身
  3. 递归深度:统计时递归所有子目录
  4. 序号限制:如果文件夹超过10个,需要扩展序号系统
  5. 性能考虑:大型项目可能需要优化统计命令
  6. 重命名授权:文件夹重命名操作必须得到用户明确授权,并展示修改前后样例
  7. 路径安全:重命名时注意处理特殊字符,使用引号包裹路径
  8. 错误恢复:重命名失败时记录错误,不影响其他文件夹的处理

自定义选项

可选参数

  • includeHidden: 是否包含隐藏文件(默认:false)
  • maxDepth: 最大递归深度(默认:无限制)
  • excludePatterns: 排除的文件模式列表
  • sortBy: 排序方式(文件数/名称/占比,默认:文件数)

更新频率建议

  • 项目结构变化较大时重新统计
  • 定期(如每月)更新一次
  • 重要里程碑时更新
  • 每次统计后自动更新文件夹名称,保持统计信息同步

完整执行流程示例

  1. 扫描目录 → 获取所有文件夹列表
  2. 统计文件 → 计算每个文件夹的文件数量
  3. 计算占比 → 基于总文件数计算占比
  4. 排序整理 → 按文件数量排序
  5. 生成报告 → 创建统计报告文档
  6. 生成重命名计划 → 列出需要更新的文件夹
  7. 用户确认 → 展示修改前后样例,等待授权
  8. 执行重命名 → 用户授权后逐个重命名文件夹
  9. 完成报告 → 更新统计报告,记录重命名结果

使用场景:项目文档、README生成、知识库导航、项目概览

posted @ 2025-12-05 23:45  吾以观复  阅读(2)  评论(0)    收藏  举报