Skip to content

目录结构浏览器

快速生成目录树结构,支持智能过滤和灵活的二次筛选,让你对项目结构一目了然。

功能概述

目录结构浏览器帮你一键生成清晰、美观的目录树,核心能力包括:

  • 🌲 树状可视化 — 递归遍历目标目录,生成标准的 ASCII 目录树,文件/目录层级一目了然
  • 🔍 智能过滤 — 支持 .gitignore 规则、自定义 glob 模式、两者组合三种过滤方式,精准控制展示内容
  • ⚡ Rust 后端驱动 — 目录遍历和过滤由原生 Rust 后端执行(基于 ignore crate),即使是大项目也能秒级生成
  • 🎛️ 实时二次筛选 — 生成后无需重新扫描,直接在前端通过深度滑块、包含/排除关键词等控件实时调整视图
  • 📋 一键导出与复用 — 支持复制到剪贴板、导出为 .txt / .md 文件、直接将树结构发送到 LLM 聊天窗口

快速上手

1. 打开工具

在左侧工具栏中找到 目录结构浏览器(图标为 📂),点击进入。

2. 选择目标目录

点击配置面板中的 "选择目录" 按钮,通过系统对话框选取要分析的文件夹。

也可以直接将文件夹从资源管理器拖拽到目标路径输入框中,工具会自动填入路径。若开启了"拖拽后自动生成",松开即开始生成。

3. 生成目录树

点击 "生成" 按钮,Rust 后端会快速遍历目录并返回结构化数据。右侧结果面板会立刻展示生成的目录树。

TODO: 目录树生成结果截图

4. 查看与操作结果

  • 浏览 — 在右侧编辑器中查看完整的目录树,支持语法高亮和行号
  • 复制 — 点击复制按钮,将当前树结构复制到剪贴板
  • 导出 — 点击导出按钮,保存为 .txt.md 文件
  • 发送到聊天 — 点击发送按钮,将树结构直接输入到 LLM 聊天窗口,方便 AI 分析项目结构

功能详解

配置面板

左侧配置面板提供了以下参数,决定目录树的初始生成行为:

参数说明默认值
目标路径要分析的目录路径,可手动输入或通过选择对话框选取-
显示文件是否在树中包含文件(关闭后只显示目录结构)✅ 开启
显示隐藏项目是否显示名称以 . 开头的隐藏文件和目录❌ 关闭
最大深度目录树的最大层级(0 表示无限制,建议保持 5-10 避免过长输出)5
过滤模式选择过滤规则的应用方式:不过滤 / 使用 .gitignore / 自定义规则 / 两者同时使用不过滤
自定义规则当过滤模式为"自定义规则"或"两者同时使用"时,在此输入 glob 模式(每行一条)内置示例

💡 提示: 自定义规则支持标准的 glob 模式语法,如 node_modules*.logdist。以 # 开头的行会被视为注释。

过滤模式详解

四种过滤模式覆盖了从"完全不过滤"到"双重过滤"的所有场景:

模式适用场景示例
不过滤想看完整的目录结构,不加任何限制快速了解项目全貌
使用 .gitignore项目已有 .gitignore 文件,想沿用它的规则Node.js 项目,跳过 node_modules
自定义规则临时设置过滤规则,不想修改 .gitignore排除 logs/*.zip
两者同时使用既想遵守 .gitignore,又想额外排除某些内容项目中排除 node_modules + 额外排除 dist

视图控制(二次筛选)

生成之后的实时调整功能,所有调整无需重新请求后端:

TODO: 视图控制面板截图

控件说明
显示深度拖动滑块控制树的展开深度,快速收起深层子目录
包含路径只显示包含指定路径的分支(如输入 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 聊天:

  1. 配置好参数后点击生成
  2. 勾选 "包含元数据""包含筛选信息"
  3. 点击 "发送到聊天"
  4. 在 LLM 聊天窗口中,AI 能基于完整的目录结构和元数据进行分析

使用深度限制控制输出长度

对于层级很深的项目(如 node_modules),合理设置深度可以避免生成过长的输出:

场景推荐深度说明
项目概览2只看顶层模块
模块结构3-4看模块下的子目录
完整分析5-8覆盖大多数项目需求
无限制0全量输出(慎用,可能很长)

常见问题

生成速度慢怎么办?

目录遍历由 Rust 后端执行,通常非常快。如果感觉很慢,建议:

  • 检查是否开启了"显示隐藏项目"(会遍历更多文件)
  • 降低"最大深度"值
  • 使用过滤模式排除 node_modules 等大型目录

为什么某些目录或文件没有显示?

可能的原因:

  • 过滤规则生效 — 检查当前的过滤模式是否排除了该内容
  • 超出深度限制 — 检查"最大深度"设置是否足够
  • "显示文件"已关闭 — 确认是否开启了文件显示
  • "显示隐藏项目"已关闭 — 隐藏文件(以 . 开头)默认不显示

视图控制和配置面板有什么区别?

两者有本质区别:

配置面板视图控制
时机生成之前设置生成之后调整
是否重新扫描✅ 需要重新生成❌ 仅前端实时渲染
适用场景改变过滤规则、深度等初始参数快速折叠、按路径聚焦、排除关键词

最佳实践: 先用配置面板选好合适的过滤规则生成一次,然后通过视图控制做各种视角的微调,避免反复调用后端。

自定义规则的语法是怎样的?

支持标准的 glob 模式,每行一条规则,以 # 开头的行会被忽略:

gitignore
# 排除 node_modules 目录
node_modules
# 排除所有日志文件
*.log
# 排除 dist 和 build 目录
dist
build
# 排除隐藏目录
.*

你可以直接参考 .gitignore 的语法规则来编写。

发送到聊天会包含什么内容?

发送到聊天的是编辑器当前显示的内容,包括:

  • 如果开启了"包含元数据",会一并发送元数据信息
  • 当前视图控制下的树结构(二次筛选后的结果)
  • 如果你在编辑器中手动修改了任何内容,这些修改也会被发送

这让你可以精确定制发送给 LLM 的内容,去掉不必要的信息。

Released under the Apache-2.0 License.