Skip to content

LEESOL-cn/folder-tree

Repository files navigation

FolderTree 图标 FolderTree - 文件夹目录树查看工具

在 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\、注册右键菜单、启动托盘、加入开机自启。


四种方式详解

方式 1:一键安装版(推荐分发)

生成一个 FolderTreeSetup.exe,发给任何人,双击即可完成安装(无需 Python 环境)。

打包流程:

python tray/build.py               # 单 exe 双模式:无参数常驻托盘,带目录参数则展示目录树
python setup/build_setup.py        # 把它打进安装程序

安装程序功能:

  • 安装:释放 exe → 注册右键菜单 → 开机自启 → 启动托盘
  • 卸载:删除文件 → 清理注册表

手动注册右键(开发者用):

setup\install.bat       # 安装(需管理员)
setup\uninstall.bat     # 卸载

方式 2:窗口版

标准 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、显示修改时间


方式 3:级联菜单版

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"

特点: 原生级联菜单、点击直接打开文件、复制目录树


方式 4:托盘配置程序

常驻系统托盘,右键图标即可修改配置(查看器模式、深度、排序等),修改后下次右键打开立即生效。

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"

各版本独立性

每个版本可独立打包、安装、卸载,互不影响。 一键安装版内含统一入口 + 托盘,可替代单独安装级联/窗口版。

About

No description, website, or topics provided.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors