Skip to content

Repository files navigation

DirTreeCopy - 目录和文件复制及重命名工具

一个简单但功能独特的 Windows 桌面应用程序,用于目录结构复制、文件整理、批量重命名、多格式导出等操作。

🚀 功能特性

核心功能

  • 单层目录复制 - 仅复制选定目录的第一层空目录结构
  • 选定层级复制 - 复制用户在树形视图中选择的目录结构
  • 完整目录树复制 - 递归复制整个目录树结构(空目录)
  • 自定义复制 - 灵活选择要复制的文件和目录
  • 多格式导出功能 - 支持 10 种格式导出目录结构:TXT、HTML、HTML(含链接)、Markdown、Markdown(含链接)、DOCX、DOCX(含链接)、JSON、XLSX、XLSX(含链接)

辅助功能

  • 可视化目录树 - 直观的树形视图展示目录结构
  • 文件大小显示 - 实时显示文件和目录大小(KB 单位)
  • 批量重命名 - 支持本级、选定层级和全部层级的批量重命名
  • 智能错误处理 - 完善的权限和异常处理机制
  • 简洁用户界面 - 简洁直观的图形用户界面

📋 系统要求

  • 操作系统: Windows 7/8/10/11
  • Python 版本: 3.8+(如果从源码运行)
  • 基础依赖: tkinter(通常随 Python 安装)
  • 可选依赖:
    • python-docx(用于 DOCX 格式导出,程序会自动检测并提示安装)
    • XlsxWriter(用于 XLSX 格式导出,程序会自动检测并提示安装)

🛠️ 安装方式

方式一:直接下载可执行文件(推荐)

  1. Releases 页面下载最新版本的 DirCopyTool_20260906_V1.5.exe
  2. 双击运行即可使用,无需安装 Python 环境

方式二:从源码运行

  1. 克隆仓库到本地:

    git clone https://github.com/your-username/DirTreeCopy.git
    cd DirTreeCopy
  2. 安装依赖:

    pip install -r requirements.txt
  3. 运行程序:

    python main_app.py

方式三:自行构建可执行文件

  1. 安装 PyInstaller:

    pip install pyinstaller
  2. 运行构建脚本:

    python build_script.py

📖 使用说明

基本操作流程

  1. 选择源目录 - 点击"浏览"按钮选择要操作的源目录
  2. 选择目标目录 - 点击"浏览"按钮选择复制目标位置
  3. 选择操作模式 - 根据需要选择相应的复制或导出模式
  4. 执行操作 - 点击"开始复制或导出"按钮执行操作

功能详解

复制模式

  • 仅复制一层目录: 只复制源目录下的直接子目录结构(空目录)
  • 复制选定层级目录: 复制在树形视图中勾选的目录结构
  • 复制所有层级目录: 递归复制整个目录树结构(空目录)
  • 复制选定目录和文件: 灵活选择要复制的文件和目录,支持混合选择
  • 显示筛选: 支持默认显示、只显示目录、只显示文件三种查看方式

多格式导出模式

  • 导出目录文件名称: 生成目录结构文档,支持 10 种格式
    • TXT 格式:纯文本树形结构,简洁清晰,适合快速查看
    • HTML 格式:静态网页格式,美观易读
    • HTML 格式(含链接):在 HTML 基础上添加可点击链接,直接打开文件
    • Markdown 格式:适合文档编写和版本控制,支持 GitHub 等平台
    • Markdown(含链接):使用 Markdown 列表输出可点击文件链接
    • DOCX 格式:Microsoft Word 文档格式,专业文档输出
    • DOCX 格式(含链接):Word 文档格式,支持真正的超链接,可直接点击打开文件
    • JSON 格式:标准 JSON 树形结构,适合程序化处理
    • XLSX 格式:Excel 表格格式,行列展示目录结构
    • XLSX 格式(含链接):Excel 表格格式,支持可点击的文件链接

重命名功能

  • 本级目录字符替换: 对源目录本级子目录进行字符串查找替换
  • 全部目录字符替换: 递归对所有层级目录进行字符串查找替换
  • 多维重命名本级目录名: 先勾选本级目录(可逐个勾选、"全选"或"取消全选"),再设置前缀、后缀、序号编号,仅对已勾选目录改名
  • 多维重命名本级文件名: 先勾选本级文件(可逐个勾选、"全选"或"取消全选"),保持扩展名,支持批量编号
  • 全层级目录名称修改: 先勾选各层级目录(可逐个勾选、"全选"或"取消全选"),执行精确匹配、通配符(直观替换)、正则表达式改名
  • 各层级文件名称修改: 先勾选各层级文件(可逐个勾选、"全选"或"取消全选"),执行精确匹配、通配符(直观替换)、正则表达式改名

操作历史

  • 撤销/重做: 可撤销和重做最近的复制、重命名操作
  • 操作历史: 查看详细的操作记录
  • 清空选择: 清空目录树中的所有勾选

🎯 使用场景

  • 项目文件整理 - 整理开发项目的目录结构
  • 文档归档 - 批量整理和复制文档文件
  • 备份操作 - 选择性备份重要目录
  • 目录结构分析 - 导出目录结构用于分析和文档
  • 批量重命名 - 统一文件和目录命名规范
  • 技术文档编写 - 使用 Markdown 格式导出,便于 GitHub 等平台展示
  • 项目报告制作 - 使用 DOCX 格式生成专业的项目结构报告
  • 快速文件访问 - 使用含链接的导出格式,一键打开目标文件
  • 团队协作 - 分享带链接的目录结构,提高团队工作效率

🔧 技术特性

  • 多格式支持: 10 种导出格式,满足不同使用场景和需求
  • DOCX 超链接技术: 使用底层 XML API 实现真正的可点击超链接
  • 文件 URI 转换: 支持本地文件路径转换为 file:// 协议,兼容中文路径
  • 依赖管理: 自动检测 python-docx、XlsxWriter 库,缺失时提供友好的安装指导
  • 代码隔离: 新功能完全独立实现,不影响原有功能的稳定性
  • 异常处理: 完善的文件权限和访问异常处理
  • 内存优化: 高效的文件操作,适合处理大型目录
  • 用户体验: 直观的进度反馈和错误提示
  • 界面设计: 统一的字体样式和颜色方案,美观协调的用户界面
  • 安全可靠: 路径安全验证,输入验证机制,无安全漏洞

📝 更新日志

v1.5.0 (2026-09-06)

  • 🆕 多维重命名勾选式操作:"多维重命名本级目录名/文件名"改为先勾选再重命名,支持"全选/取消全选",仅对已勾选项执行改名
  • 🆕 全层级目录名称修改:原"全部目录名修改"升级为"全层级目录名称修改",先勾选各层级目录再执行精确/通配符/正则改名,支持实时匹配数量统计与预览
  • 🔄 各层级文件名称修改:原"文件名称修改"更名为"各层级文件名称修改"
  • 🆕 关于对话框:新增"关于"按钮,显示版本、构建日期、作者、协议等信息
  • 🔧 目录通配符直观替换:目录名称修改的通配符模式采用与文件一致的直观替换语义(如 项目*归档_*
  • 🐛 修复帮助信息显示异常:清理了帮助文本中误嵌入的代码注释
  • 📚 文档完善:新增项目需求规格说明书、软件安装使用说明书、打包发布指南

v1.4.0 (2026-08-28)

  • 🆕 文件名称修改功能:原"全部文件名修改"升级为"文件名称修改",可先勾选部分或全部文件再修改
  • 🆕 勾选状态保留:点击"文件名称修改"按钮不再自动取消已勾选文件
  • 🔧 对话框优化:显示已选文件数量、匹配模式说明联动、实时匹配文件数量统计、预览模式默认开启
  • 🔧 通配符直观替换:替换为中的 * 和 ? 表示原文件名中对应位置匹配到的内容
  • 🔄 版本信息更新:主程序、构建脚本与 spec 文件统一升级至 V1.4 / 20260828

v1.3.0 (2026-04-01)

  • 🔄 版本信息统一:主程序、构建脚本与 spec 文件统一使用 V1.3 / 20260401 版本信息
  • 🔄 帮助信息整理:版本说明与更新说明解耦,避免版本号更新后内容失真
  • 目录树性能优化:目录大小改为缓存计算,减少大目录场景的重复扫描
  • 🧭 显示筛选隔离:默认显示、只显示目录、只显示文件与执行模式分离
  • 🔗 Markdown(含链接)修正:导出结果改为标准 Markdown 链接列表
  • 🛠️ 批量重命名修正:精确匹配和通配符匹配逻辑与界面说明保持一致

v1.2.0 (2025-06-25)

  • 多格式导出功能:扩展到 10 种导出格式
  • 🔗 DOCX 超链接功能:支持真正的可点击超链接,直接打开文件
  • 🌐 文件 URI 转换技术:支持中文路径和特殊字符
  • 🎨 UI 界面优化:导出格式选项采用单行紧凑布局

v1.1.0 (2025-01-18)

  • 🎨 界面优化:统一字体样式和颜色方案
  • ✨ 撤销/重做功能与操作历史记录
  • 🔧 修复构建脚本重复导入问题

v1.0.0 (2025-01-18)

  • ✨ 初始版本发布

🤝 贡献指南

欢迎提交 Issue 和 Pull Request 来改进这个项目!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 开源协议

本项目采用 MIT License 开源协议。

🙏 致谢

  • 感谢 Python 社区提供的优秀工具和库
  • 感谢所有测试用户的反馈和建议

爱心打赏

☕ 如果你开心,欢迎送爱心请作者喝杯咖啡,让我更有动力去创造!

爱心 微信赞赏码


⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!

About

一个目录结构和文件名复制工具。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages