Skip to content

stellarissss/FolderForAI

Repository files navigation

Folder2AI:文件夹结构化工具

📌 项目简介

Folder2AI 是一个轻量级的桌面端小工具,旨在将复杂的本地项目文件夹一键结构化为 AI 友好的纯文本文档。无论是包含数十个代码文件的开发项目,还是层级复杂的资源文件夹,该工具都能将其目录树与具体文件内容完美融合,生成一份层次分明、边界清晰的文本文件,方便直接发送给大语言模型(如 DeepSeek、ChatGPT 等)进行阅读和理解。

🤔 解决的需求

在日常使用 AI 辅助开发时,我们经常会遇到一个痛点:AI 无法直接读取我们的本地项目文件夹。

  • 如果分别发送各文件:AI 会“见树不见林”。它只能看到孤立的代码,却无法理解文件之间的层级关系、依赖关系和目录归属,导致给出的建议常常脱离项目实际架构。
  • 如果只发送目录树:AI 知道项目结构,却不知道具体的代码内容,无法进行实质性的代码审查或 Bug 修复。
  • 手动复制粘贴:面对几十个文件,手动在每段代码前加上文件路径注释不仅耗时,且极易出错。 Folder2AI 的诞生就是为了解决这一痛点。 它将“全局目录树”与“带层级标签的文件内容”打包在一起,既保留了空间结构感,又提供了完整的文本上下文,让 AI 能够瞬间建立对整个项目的全局认知。

✨ 功能特性

  1. 完美的结构呈现:采用 ├──└── 字符绘制清晰的树状目录图。
  2. 层级标签化:使用 ==== 第N层 子文件夹/文件: 名称 ====\[文件名] 作为分隔标识,极其符合大语言模型的文本解析逻辑。
  3. 不忽略任何文件:文本文件(如 .py, .html, .js)完整提取内容;二进制文件(如 .png, .exe)保留目录位置但不强行转码,确保 AI 知道其存在。
  4. 多编码兼容:自动依次尝试 UTF-8GBKLatin-1 编码读取文件,告别中文环境下的乱码和报错问题。
  5. 零门槛图形界面:基于 tkinter 打造简洁直观的 GUI,支持多线程运行,处理大文件夹时界面不卡顿。
  6. 一键打包分发:附带打包脚本,可一键生成免安装的 .exe 可执行文件,方便分发给无 Python 环境的用户。

🖥️ 输出格式示例

工具生成的文本文档格式如下,极其适合 AI 阅读:

文件夹名: my_project

结构总览

src/ ├── main.js └── utils.js index.html

第零层 子文件夹: src

[main.js] console.log("hello"); [utils.js] function help() {}

第零层 文件: index.html

[index.html]

...

🚀 部署与使用方法

本工具提供三种使用方式,可根据你的技术背景选择:

方式一:免安装版(推荐普通用户使用)

如果你没有 Python 环境或不想折腾,可以直接使用打包好的 .exe 应用。

  1. 获取 Folder2AI.exe 可执行文件。
  2. 双击运行。
  3. 点击“浏览...”选择你需要结构化的目标文件夹。
  4. 设置输出文件的保存路径(默认保存在所选文件夹的同级目录下)。
  5. 点击“🚀 一键生成”,稍作等待,提示成功后即可打开生成的 .txt 文件。
方式二:源码运行(推荐开发者使用)
  1. 确保本地已安装 Python 3.x 环境。
  2. 将项目核心文件 folder2ai\_core.pyfolder2ai\_gui.py 下载至同一目录下。
  3. 打开终端(CMD/PowerShell/Terminal),进入该目录。
  4. 运行以下命令启动图形界面:

bash

python folder2ai_gui.py

方式三:自行打包成 EXE 应用

如果你想自己从源码编译出 .exe 可执行文件,可以使用项目自带的打包脚本。

  1. 确保已安装 Python 环境。
  2. folder2ai\_core.pyfolder2ai\_gui.py打包一下吧.bat 放在同一目录下。
  3. 双击运行 打包一下吧.bat

脚本会自动执行以下操作:

1, 通过 pip 安装 pyinstaller 依赖。

2, 调用 PyInstaller 将 GUI 脚本及其依赖打包为单一可执行文件(隐藏控制台黑框)。

bat pip install pyinstaller -q pyinstaller --noconsole --onefile --name Folder2AI folder2ai_gui.py

4. 打包完成后,在当前目录下会生成一个 dist 文件夹,里面包含了编译好的 Folder2AI.exe

🛠️ 核心技术实现简述

  • 目录树生成:利用 os.listdir 获取条目,通过判断是文件还是文件夹进行排序(文件夹优先),并递归拼接 ├── └── 前缀字符。
  • 文件内容提取:通过深度优先遍历,使用 depth 参数记录当前递归层级,映射为“第零层、第一层”等中文标签。采用 try...except 机制依次尝试多种编码读取文件,保障了极强的鲁棒性。
  • GUI 多线程:利用 Python 内置的 threading.Thread 将繁重的文件遍历读写任务放入子线程,通过 self.root.after(0, ...) 安全地在主线程更新 Tkinter UI 状态,防止界面假死。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors