在 Windows 文件资源管理器中右键任意文件夹,快速查看其目录结构。
本项目提供 4 种打包方式,可按需选择:
| 方式 | 说明 | 目标用户 |
|---|---|---|
| 🎁 一键安装版 (Setup) | 单个 exe,双击自动完成所有安装 | 分发给他人 |
| 🖥️ 窗口版 (Window) | 独立对话框,功能完整 | 单独使用窗口 UI |
| 🗂️ 级联版 (Cascade) | 原生右键级联菜单 | 单独使用菜单模式 |
| ⚙️ 托盘版 (Tray) | 常驻托盘图标,动态改配置 | 已装其他版本后配合使用 |
只想给别人分发一个 exe,双击安装:
pip install pystray Pillow pyinstaller
# 两步生成 FolderTreeSetup.exe
python tray/build.py # → dist/FolderTreeTray.exe(单 exe 双模式:托盘 + 右键菜单)
python setup/build_setup.py # → dist/FolderTreeSetup.exe
# 分发这一个文件即可
dist/FolderTreeSetup.exe对方双击后:会释放 exe 到 C:\FolderTree\、注册右键菜单、启动托盘、加入开机自启。
生成一个 FolderTreeSetup.exe,发给任何人,双击即可完成安装(无需 Python 环境)。
打包流程:
python tray/build.py # 单 exe 双模式:无参数常驻托盘,带目录参数则展示目录树
python setup/build_setup.py # 把它打进安装程序安装程序功能:
- 安装:释放 exe → 注册右键菜单 → 开机自启 → 启动托盘
- 卸载:删除文件 → 清理注册表
手动注册右键(开发者用):
setup\install.bat # 安装(需管理员)
setup\uninstall.bat # 卸载标准 Windows 对话框风格,功能最完整:搜索、导出、列排序。
cd window_version
python build.py # → dist/FolderTree.exe
# 注册右键菜单
window_version\install.bat # 安装
window_version\uninstall.bat # 卸载本地调试:
cd window_version
python main.py "D:\some\folder"特点: 树形控件、搜索过滤、导出 TXT/MD/JSON、显示修改时间
Windows 原生右键菜单风格,悬停自动展开,轻量快速。
cd cascade_version
python build.py # → dist/FolderTreeCascade.exe
# 注册右键菜单
cascade_version\install.bat # 安装
cascade_version\uninstall.bat # 卸载本地调试:
python cascade_version/main.py "D:\some\folder"特点: 原生级联菜单、点击直接打开文件、复制目录树
常驻系统托盘,右键图标即可修改配置(查看器模式、深度、排序等),修改后下次右键打开立即生效。
cd tray
python build.py # → dist/FolderTreeTray.exe
# 或直接运行(开发调试)
python tray/main.py托盘菜单功能:
- 切换查看器:级联菜单 / 窗口版
- 设置最大深度
- 显示文件大小 / 隐藏文件 / 仅目录
- 排序方式
- 开机自启
注:一键安装版已内含托盘程序,无需单独安装。
位置:%APPDATA%\FolderTree\config.json
{
"max_depth": 3,
"show_size": true,
"show_hidden": false,
"dirs_only": false,
"sort_by": "name",
"auto_start": false,
"viewer_mode": "cascade"
}| 字段 | 说明 | 可选值 |
|---|---|---|
max_depth |
最大展开深度 | 0=不限, 1-20 |
show_size |
显示文件大小 | true/false |
show_hidden |
显示隐藏文件 | true/false |
dirs_only |
仅显示目录 | true/false |
sort_by |
排序方式 | name/size/time |
auto_start |
开机自启 | true/false |
viewer_mode |
查看器模式 | cascade/window |
修改配置后,下次右键打开目录树时立即生效。
folder-tree/
├── scanner.py # 公共:目录扫描引擎
├── renderer.py # 公共:目录树文本/JSON 渲染器
├── config.py # 公共:用户配置读写
├── autostart.py # 公共:开机自启管理
├── .treeignore # 公共:忽略规则(类似 .gitignore)
├── launcher.py # 统一入口(读 config 决定启动哪个版本)
├── cascade_ui.py # 级联菜单核心逻辑(被 launcher 和 cascade_version 共用)
│
├── window_version/ # 窗口版
│ ├── main.py # 入口
│ ├── ui.py # 窗口界面
│ ├── build.py # 打包 → dist/FolderTree.exe
│ ├── installer.py # 注册表工具
│ ├── install.bat # 安装
│ └── uninstall.bat # 卸载
│
├── cascade_version/ # 级联菜单版
│ ├── main.py # 入口
│ ├── build.py # 打包 → dist/FolderTreeCascade.exe
│ ├── installer.py # 注册表工具
│ ├── install.bat # 安装
│ └── uninstall.bat # 卸载
│
├── tray/ # 托盘 + 右键入口(单 exe 双模式)
│ ├── main.py # 无参→常驻托盘;带路径→展示目录树后退出
│ └── build.py # 打包 → dist/FolderTreeTray.exe
│
├── setup/ # 一键安装程序
│ ├── gui.py # 安装/卸载界面
│ ├── build_setup.py # 打包安装程序(内嵌托盘 exe)
│ ├── installer.py # 注册表工具
│ ├── install.bat # 手动安装
│ └── uninstall.bat # 手动卸载
│
├── resources/ # 图标等资源
├── dist/ # 构建输出
└── .gitignore
| 文件 | 功能 |
|---|---|
scanner.py |
目录扫描,返回 FileEntry 树结构,支持 .treeignore |
renderer.py |
将 FileEntry 渲染为文本树、Markdown、JSON |
config.py |
配置文件读写,所有版本共用 |
autostart.py |
Windows 开机自启注册表管理 |
cascade_ui.py |
级联菜单 UI 逻辑(被 launcher 和 cascade_version 共用) |
launcher.py |
统一入口,读 viewer_mode 分发到对应 UI |
- Python 3.10+
- Windows 10/11
pip install pyinstaller(打包)pip install pystray Pillow(托盘版)
# 窗口版
cd window_version && python main.py "D:\some\folder"
# 级联版
python cascade_version/main.py "D:\some\folder"
# 托盘
python tray/main.py
# 统一入口(读 config 自动选版本)
python launcher.py "D:\some\folder"每个版本可独立打包、安装、卸载,互不影响。 一键安装版内含统一入口 + 托盘,可替代单独安装级联/窗口版。



