跳到主内容
UniKit

目录树生成器

把缩进文本列表转成带 ├── └── │ 连接线的目录树,支持空格/制表符缩进、2 或 4 空格、显示图标与文件统计,也能把目录树反向还原成缩进列表。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

结果

这个工具能做什么

  • 在 README、issue 或技术文档里贴项目结构:把随手写的缩进列表转成带 ├── └── │ 连接线的目录树,格式和 tree 命令输出一致。
  • 反过来用:把同事贴来的目录树还原成缩进列表,方便继续增删条目或喂给脚本处理。
  • 给 .gitignore、CI 配置做参考时先看清层级:工具会统计目录数、文件数与最大层数。
  • 多语言项目里加 📁 / 📄 图标,让纯文本目录树在聊天工具或 Markdown 里也能一眼区分目录和文件。

示例

输入

src
  tools
    base64.ts
    hash.ts
  index.ts
README.md

输出

├── src
│   ├── tools
│   │   ├── base64.ts
│   │   └── hash.ts
│   └── index.ts
└── README.md

默认缩进宽度 2 空格、显示连接线;统计结果是目录 2、文件 4、共 6、层数 3。反向转换会把这个目录树还原成最初的缩进列表。

常见问题

缩进用几个空格都行吗?

不行,必须是同一单位的整数倍。工具取所有非零缩进里最小的那个当单位,2 空格与 3 空格混用会报「缩进不一致」;制表符会先按设定宽度展开(2 或 4 空格)。

层级跳级(比如 0 → 2 层)会怎样?

会直接报「缩进不一致」。每一行只能比上一行多缩进一级,因为目录树里父节点必须紧邻在子节点之前,跳级就无法确定中间那层是什么。

目录和文件是怎么区分的?

按结构而不是名字判断:有子节点的算目录,叶子节点算文件。所以列表里最后一行如果是 src 而没有下级,它会被统计成文件,图标也会显示 📄。

为什么目录树转回列表后少了图标和连接线?

反向转换会把 ├── └── │、多余空格以及 📁 / 📄 都清掉,只保留每行 2 或 4 个空格的层级缩进,这样结果可以直接被脚本或其它工具读取。

输入会被上传吗?

不会。转换完全在浏览器里完成,页面不发送任何请求,项目结构这种敏感信息也不会离开你的设备。

关键词:目录树文件夹树folder treetree 命令缩进列表项目结构directory treeascii tree

同类工具