目录结构浏览器
快速生成目录树结构,支持智能过滤和灵活的二次筛选,让你对项目结构一目了然。
功能概述
目录结构浏览器帮你一键生成清晰、美观的目录树,核心能力包括:
- 🌲 树状可视化 — 递归遍历目标目录,生成标准的 ASCII 目录树,文件/目录层级一目了然
- 🔍 智能过滤 — 支持
.gitignore规则、自定义 glob 模式、两者组合三种过滤方式,精准控制展示内容 - ⚡ Rust 后端驱动 — 目录遍历和过滤由原生 Rust 后端执行(基于
ignorecrate),即使是大项目也能秒级生成 - 🎛️ 实时二次筛选 — 生成后无需重新扫描,直接在前端通过深度滑块、包含/排除关键词等控件实时调整视图
- 📋 一键导出与复用 — 支持复制到剪贴板、导出为
.txt/.md文件、直接将树结构发送到 LLM 聊天窗口
快速上手
1. 打开工具
在左侧工具栏中找到 目录结构浏览器(图标为 📂),点击进入。
2. 选择目标目录
点击配置面板中的 "选择目录" 按钮,通过系统对话框选取要分析的文件夹。
也可以直接将文件夹从资源管理器拖拽到目标路径输入框中,工具会自动填入路径。若开启了"拖拽后自动生成",松开即开始生成。
3. 生成目录树
点击 "生成" 按钮,Rust 后端会快速遍历目录并返回结构化数据。右侧结果面板会立刻展示生成的目录树。
4. 查看与操作结果
- 浏览 — 在右侧编辑器中查看完整的目录树,支持语法高亮和行号
- 复制 — 点击复制按钮,将当前树结构复制到剪贴板
- 导出 — 点击导出按钮,保存为
.txt或.md文件 - 发送到聊天 — 点击发送按钮,将树结构直接输入到 LLM 聊天窗口,方便 AI 分析项目结构
功能详解
配置面板
左侧配置面板提供了以下参数,决定目录树的初始生成行为:
| 参数 | 说明 | 默认值 |
|---|---|---|
| 目标路径 | 要分析的目录路径,可手动输入或通过选择对话框选取 | - |
| 显示文件 | 是否在树中包含文件(关闭后只显示目录结构) | ✅ 开启 |
| 显示隐藏项目 | 是否显示名称以 . 开头的隐藏文件和目录 | ❌ 关闭 |
| 最大深度 | 目录树的最大层级(0 表示无限制,建议保持 5-10 避免过长输出) | 5 |
| 过滤模式 | 选择过滤规则的应用方式:不过滤 / 使用 .gitignore / 自定义规则 / 两者同时使用 | 不过滤 |
| 自定义规则 | 当过滤模式为"自定义规则"或"两者同时使用"时,在此输入 glob 模式(每行一条) | 内置示例 |
💡 提示: 自定义规则支持标准的 glob 模式语法,如
node_modules、*.log、dist。以#开头的行会被视为注释。
过滤模式详解
四种过滤模式覆盖了从"完全不过滤"到"双重过滤"的所有场景:
| 模式 | 适用场景 | 示例 |
|---|---|---|
| 不过滤 | 想看完整的目录结构,不加任何限制 | 快速了解项目全貌 |
| 使用 .gitignore | 项目已有 .gitignore 文件,想沿用它的规则 | Node.js 项目,跳过 node_modules |
| 自定义规则 | 临时设置过滤规则,不想修改 .gitignore | 排除 logs/ 和 *.zip |
| 两者同时使用 | 既想遵守 .gitignore,又想额外排除某些内容 | 项目中排除 node_modules + 额外排除 dist |
视图控制(二次筛选)
生成之后的实时调整功能,所有调整无需重新请求后端:
| 控件 | 说明 |
|---|---|
| 显示深度 | 拖动滑块控制树的展开深度,快速收起深层子目录 |
| 包含路径 | 只显示包含指定路径的分支(如输入 src/components 则只看该目录分支) |
| 排除内容 | 排除名称中包含指定关键词的节点,多个关键词用逗号分隔(如 node_modules,dist) |
| 显示文件 | 切换是否显示文件节点 |
| 显示文件大小 | 在文件旁显示友好的大小信息(如 12.34 KB) |
| 显示目录大小 | 在目录旁显示该目录下所有文件的累计大小 |
| 显示目录子项 | 在目录旁显示子文件和子目录数量(如 [5 files, 3 dirs]) |
示例场景: 先对整个项目生成完整树结构,然后在视图控制中输入包含路径
src、排除test,实时得到简洁的源码结构。
元数据输出
勾选 "包含元数据" 后,输出的目录树顶部会附加以下信息:
# 目录树生成信息
- 生成时间: 2026-05-08 01:30:00
## 统计信息
- 总目录: 42
- 总文件: 156
- 过滤规则数: 2
## 生成配置
- 目标路径: /path/to/project
- 显示文件: 是
- 显示隐藏: 否
- 过滤模式: 使用 .gitignore
- 最大深度: 5
## 目录结构
my-project/如果同时启用了 "包含筛选信息",还会额外输出视图控制中的当前筛选状态(显示深度、包含/排除条件等),方便在导出或发送到聊天时保留完整的上下文。
路径历史
每次成功生成的目录路径会自动记录到历史列表中,方便快速切换回之前分析过的目录:
- 点击历史路径 — 自动填入目标路径并生成
- 移除单条历史 — 删除不需要的历史记录
- 清空历史 — 一键清除所有历史记录
配置持久化
所有配置参数(包括最后一次生成的树结构)都会自动保存。下次打开工具时,会直接恢复上次的视图状态,无需重新生成。
高级用法
搭配视图控制做"分层分析"
对同一个大目录,通过不同的视图控制参数可以观察不同维度的结构:
第 1 次: 目标路径 = D:/project
→ 视图控制:包含路径 = src,排除 = test
→ 获得源码结构,方便向 AI 介绍项目
第 2 次: 保持同一生成结果
→ 视图控制:包含路径 = docs,显示文件大小
→ 获得文档目录结构,了解哪些文档文件较大无需重新生成,切换视图片刻出结果。
配合自定义规则做精确过滤
团队项目中有多个模块,只想看核心模块的结构:
过滤模式: 自定义规则
自定义规则:
# 排除所有测试文件
__tests__
*.test.*
# 排除构建产物
dist
build
coverage生成结果中会跳过这些目录和文件,树结构更聚焦。
结合元数据输出做 Code Review
生成目录树时开启元数据,然后将结果发送到 LLM 聊天:
- 配置好参数后点击生成
- 勾选 "包含元数据" 和 "包含筛选信息"
- 点击 "发送到聊天"
- 在 LLM 聊天窗口中,AI 能基于完整的目录结构和元数据进行分析
使用深度限制控制输出长度
对于层级很深的项目(如 node_modules),合理设置深度可以避免生成过长的输出:
| 场景 | 推荐深度 | 说明 |
|---|---|---|
| 项目概览 | 2 | 只看顶层模块 |
| 模块结构 | 3-4 | 看模块下的子目录 |
| 完整分析 | 5-8 | 覆盖大多数项目需求 |
| 无限制 | 0 | 全量输出(慎用,可能很长) |
常见问题
生成速度慢怎么办?
目录遍历由 Rust 后端执行,通常非常快。如果感觉很慢,建议:
- 检查是否开启了"显示隐藏项目"(会遍历更多文件)
- 降低"最大深度"值
- 使用过滤模式排除
node_modules等大型目录
为什么某些目录或文件没有显示?
可能的原因:
- 过滤规则生效 — 检查当前的过滤模式是否排除了该内容
- 超出深度限制 — 检查"最大深度"设置是否足够
- "显示文件"已关闭 — 确认是否开启了文件显示
- "显示隐藏项目"已关闭 — 隐藏文件(以
.开头)默认不显示
视图控制和配置面板有什么区别?
两者有本质区别:
| 配置面板 | 视图控制 | |
|---|---|---|
| 时机 | 生成之前设置 | 生成之后调整 |
| 是否重新扫描 | ✅ 需要重新生成 | ❌ 仅前端实时渲染 |
| 适用场景 | 改变过滤规则、深度等初始参数 | 快速折叠、按路径聚焦、排除关键词 |
最佳实践: 先用配置面板选好合适的过滤规则生成一次,然后通过视图控制做各种视角的微调,避免反复调用后端。
自定义规则的语法是怎样的?
支持标准的 glob 模式,每行一条规则,以 # 开头的行会被忽略:
# 排除 node_modules 目录
node_modules
# 排除所有日志文件
*.log
# 排除 dist 和 build 目录
dist
build
# 排除隐藏目录
.*你可以直接参考 .gitignore 的语法规则来编写。
发送到聊天会包含什么内容?
发送到聊天的是编辑器当前显示的内容,包括:
- 如果开启了"包含元数据",会一并发送元数据信息
- 当前视图控制下的树结构(二次筛选后的结果)
- 如果你在编辑器中手动修改了任何内容,这些修改也会被发送
这让你可以精确定制发送给 LLM 的内容,去掉不必要的信息。