Skip to content

Add copy and generate folder structure for your right-click. Make it easy for ChatGPT/your colleagues to understand your project structure. Use bat script and Python implementation. Currently it supports six gener

Notifications You must be signed in to change notification settings

H1DDENADM1N/Tree_This_Folder

 
 

Repository files navigation

Tree_This_Folder

为你的右键添加 复制、生成文件夹结构 功能。便于 ChatGPT / 你的同事 理解你的项目结构。使用 bat 脚本 和 Python 实现,目前已支持 生成 txt、markdown、puml、Windows默认tree、Emoji增强tree、json 六种生成格式。

Add copy and generate folder structure for your right-click. Make it easy for ChatGPT/your colleagues to understand your project structure. Use bat script and Python implementation. Currently it supports six generation formats: TXT, Markdown, puml, Windows default tree, Emoji enhanced tree, and JSON.


➕ 添加方法:

方法 1. 运行 点我.bat,根据提示输入选项 1 或 2。

注意,需同意批处理运行时的 🛡️管理员权限UAC 授权。

点我.bat预览

方法 2. 运行 start.exe,根据提示点击按钮或输入快捷键选项 1 或 2。

注意,需同意程序运行时的 🛡️管理员权限UAC 授权。

Tree_This_Folder.exe预览


🤓 高级用法:

设置探索层级深度

支持项:

生成文件夹结构 中的 txt md puml tree✨ json

不支持项:

复制文件夹结构生成文件夹结构 中的 tree

可通过 start.exe 设置,然后按确定生效,快捷键S

可手动修改 📁C:\Program Files\Tree This Folder文件夹下的 ✏️config.ini文件。

设置排除项 .treeignone

支持项:

生成文件夹结构 中的 txt md puml tree✨ json

不支持项:

复制文件夹结构生成文件夹结构 中的 tree

可通过 start.exe 点击编辑,编辑排除项。用法同 .gitignore,快捷键E

可手动修改 📁C:\Program Files\Tree This Folder文件夹下的 ✏️.treeignone文件。这是默认设置,即当前文件夹没有 ✏️.treeignone文件时,会自动复制默认设置。

可手动修改 📁 当前文件夹下的 ✏️.treeignone文件。


🗑️ 移除方法:

方法 1. 运行 点我.bat,根据提示输入选项 3 或 4。

注意,需同意批处理运行时的 🛡️管理员权限UAC 授权。

方法 2. 如果添加后已删除文件,可使用 🛡️管理员权限 运行 📁C:\Program Files\Tree This Folder 文件夹 下的 remove_treejustcopy.batremove_treegenerate.bat手动移除。

方法 3. 运行 start.exe,根据提示点击按钮或输入快捷键选项 3 或 4。

注意,需同意程序运行时的 🛡️管理员权限UAC 授权。


✨ 实现效果如图:

  1. 右键菜单效果图

右键菜单效果图

右键菜单效果图功能解释:

1. 生成文件夹结构,通过子菜单选择生成 txt、md、puml、Windows默认tree 文件 还是Emoji美化的tree✨ 文件,且内容会自动复制到剪贴板;

2. 复制文件夹结构,仅复制到剪贴板,不生成文件;
  1. 输出效果

注意,输出 json 时非常慢,请耐心等待。运行时显示The system cannot find the path specified.请忽略,但任务管理器是能看到没卡死的,不要多开。

输出效果

  1. txt 导入 ChatGPT 效果:

txt导入ChatGPT效果

  1. 输出 markdown 效果

输出markdown效果

  1. markdown 导入 xmind 效果

markdown 导入 xmind 效果

  1. 输出 puml 效果

输出puml效果

  1. puml 导入 plantuml.com 效果

puml 导入 plantuml.com效果

  1. 输出 Windows 默认 tree 效果

输出tree效果

  1. 输出 tree✨ 效果 (Powered By seedir

输出tree✨效果

  1. 输出 json 效果 (Inspired By tree_maker

输出json效果

  1. 注意,输出 json 时非常慢,请耐心等待。运行时显示The system cannot find the path specified.请忽略,但任务管理器是能看到没卡死的,不要多开。 输出json非常慢请耐心等待

如何打包:

1. 📁runtime\

下载python-3.12.0-embed-amd64.zip并解压,将解压后的文件覆盖 runtime\

2. 📁site-packages\

Anaconda 新建 Python-3.12.0 环境py312,安装的第三方库

emoji
pyperclip
PySide6
seedir
gitignore_parser

py312环境C:\ProgramData\anaconda3\envs\py312\Lib\site-packages中复制第三方库到site-packages\

emoji
natsort
pyperclip
PySide6
seedir
shiboken6
gitignore_parser

3. 🛠️start.exe

下载 PyStand-py312-pyqt6-lite.7z 并解压,将解压后的PyStand.exe覆盖 start.exe

或者,用 CMake 生成 PyStand.exe,注意,要用含 GetAdmin 版本的Pystand.cpp

# 安装依赖
cmake -G"MinGW Makefiles" .
# 编译
cmake --build .

4. 🗃️Tree_This_FolderPyQt6Portable.7z

参考Releases中的 7z 文件,仅压缩打包必须的文件


安装后 目录结构

📁 C:\Program Files\Tree This Folder/
├─📁 bats/    除移除功能外其他的批处理脚本
│ ├─🛠️tree2json.bat    调用scripts\tree2json.py
│ ├─🛠️tree2puml.bat    调用scripts\tree2puml.py
│ ├─🛠️treejustcopy.bat    复制文件夹结构,不生成任何文件
│ ├─🛠️treemd.bat    调用scripts\treemd.py
│ ├─🛠️treeseedir.bat    调用scripts\treeseedir.py
│ ├─🛠️treetree.bat    生成Windows默认tree文件 `目录名`.txt
│ └─🛠️treetxt.bat    调用scripts\treetxt.py
├─✏️.treeignore    配置文件 可设置排除项 用法参考[gitignore](https://git-scm.com/docs/gitignore)
├─✏️config.ini    配置文件 可设置探索层级深度
├─🛠️remove_treegenerate.bat    移除功能 生成文件夹结构
├─🛠️remove_treejustcopy.bat    移除功能 复制文件夹结构
├─📁 runtime/    Python3.12运行环境
├─📁 scripts/    Python脚本
│ ├─📜tests.py    调试工具 测试gitignore
│ ├─📜tree2json.py    生成JSON文件 `目录名`.json
│ ├─📜tree2puml.py    生成PUML文件 `目录名'_'六位hash'.puml
│ ├─📜treemd.py    生成Markdown文件 `目录名`.md
│ ├─📜treeseedir.py    生成emoji美化的tree✨文件 `目录名`_seedir.txt
│ ├─📜treetxt.py    生成绝对路径表文件 Folder_Structure.txt
├─📁 site-packages/    Python运行库
│ ├─📁 emoji/    seedir依赖 https://pypi.org/project/emoji/
│ ├─📜gitignore_parser.py    设置排除项 分析gitignore的规则 https://github.com/mherrmann/gitignore_parser
│ ├─📁 natsort/    seedir依赖
│ ├─📁 pyperclip/    复制到剪贴板 https://pypi.org/project/pyperclip/
│ ├─📁 seedir/     生成tree✨文件 https://github.com/earnestt1234/seedir
├─🖼️treejustcopy.ico    复制文件夹结构的图标
└─🖼️TreeThisFolder.ico    生成文件夹结构的图标


资源引用

程序图标来自 Binary-tree-icon

About

Add copy and generate folder structure for your right-click. Make it easy for ChatGPT/your colleagues to understand your project structure. Use bat script and Python implementation. Currently it supports six gener

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 77.0%
  • Batchfile 23.0%