# file_organization **Repository Path**: zmh/file_organization ## Basic Information - **Project Name**: file_organization - **Description**: 一个功能强大、界面友好的图形界面工具,用于查找和整理重复文件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-08 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文件重复查找工具
![Python](https://img.shields.io/badge/Python-3.6%2B-blue) ![License](https://img.shields.io/badge/License-MIT-green) ![Platform](https://img.shields.io/badge/Platform-Windows-lightgrey) 一个功能强大、界面友好的图形界面工具,用于查找和整理重复文件 [功能介绍](#功能特点) • [快速开始](#快速开始) • [使用说明](#使用说明) • [常见问题](#常见问题)
--- ## 📌 简介 文件重复查找工具是一个基于 Python + Tkinter 开发的桌面应用程序,帮助用户快速识别和管理磁盘中的重复文件。通过直观的图形界面,用户可以轻松扫描多个磁盘或文件夹,查看重复文件列表,并进行批量删除或导出操作。 ### ✨ 核心特性 - 🎯 **智能匹配**:基于文件名和文件大小双重匹配,精准识别重复文件 - 🚀 **高效扫描**:支持多线程扫描,可随时中断 - 🎨 **友好界面**:响应式设计,自适应系统 DPI 缩放 - 🗑️ **安全删除**:支持移至回收站,可随时恢复 - 📤 **结果导出**:支持导出扫描结果到文本文件 - 🔍 **便捷操作**:右键菜单快速定位文件、复制路径 --- ## 🎨 功能特点 | 功能 | 描述 | |------|------| | 📁 多路径扫描 | 支持同时扫描多个磁盘和文件夹 | | 🎚️ 文件大小过滤 | 可设置最小文件大小,快速定位大文件 | | 🔄 批量操作 | 点击分组可全选/取消全选该组所有文件 | | 🗂️ 分组显示 | 相同文件自动分组,展开查看详情 | | 🖱️ 右键菜单 | 快速打开所在文件夹、复制文件路径 | | 📊 进度显示 | 实时显示扫描进度和当前处理文件 | | ⏹️ 随时停止 | 扫描过程中可随时停止,不会丢失已扫描结果 | | ♻️ 回收站支持 | 删除文件可移至回收站,安全可恢复 | --- ## 🚀 快速开始 ### 方式一:使用 EXE 文件(推荐) 1. 下载最新版本的 [文件重复查找工具.exe](dist/文件重复查找工具.exe) 2. 双击运行即可使用 3. **无需安装 Python 或任何依赖** ### 方式二:Python 源码运行 #### 环境要求 - Python 3.6 或更高版本 - tkinter(通常随 Python 一起安装) #### 安装步骤 ```bash # 1. 克隆或下载项目 git clone https://gitee.com/zmh/file_organization.git cd file-organizer # 2. 安装可选依赖(推荐,用于移至回收站) pip install send2trash # 3. 运行程序 python file_organization.py ``` #### 使用批处理文件 Windows 用户可以直接双击 `start.bat` --- ## 📖 使用说明 ### 基本操作流程 1. **添加扫描路径** - 点击「添加文件夹」选择要扫描的文件夹 - 点击「添加磁盘」选择要扫描的整个磁盘 - 可以添加多个路径进行批量扫描 2. **设置扫描参数** - 在「最小文件大小」输入框中设置文件大小下限(MB) - 默认为 10MB,可根据需要调整 3. **开始扫描** - 点击「开始扫描」按钮开始扫描 - 扫描过程中按钮变为「停止扫描」,可随时停止 4. **查看结果** - 扫描结果以树形结构分组显示 - 每组包含相同文件名和大小的文件 - 点击分组左侧的 `□` 可勾选该组所有文件 - 双击文件行查看详细信息 5. **管理重复文件** - **删除文件**:勾选要删除的文件,点击「删除勾选的文件」 - **打开文件夹**:右键点击文件,选择「打开所在文件夹」 - **复制路径**:右键点击文件,选择「复制文件路径」 - **导出结果**:点击「导出结果」保存到文本文件 ### 快捷操作 | 操作 | 说明 | |------|------| | 点击复选框 `□` | 切换单个文件的选中状态 | | 点击父节点(分组) | 批量切换该组所有文件的选中状态 | | 右键菜单 | 快速打开文件夹或复制路径 | | 双击文件行 | 查看文件详细信息 | --- ## ⚙️ 配置说明 ### 文件大小过滤 - **作用**:过滤小于指定大小的文件,快速定位大文件 - **单位**:MB(兆字节) - **默认值**:10MB - **设置为 0**:扫描所有文件 ### 删除模式 程序会自动检测是否安装 `send2trash` 库: - **已安装**:删除的文件移至回收站,可恢复 - **未安装**:文件永久删除,无法恢复 **推荐安装 send2trash**: ```bash pip install send2trash ``` --- ## 🛠️ 开发 ### 项目结构 ``` file-organization/ ├── file_organization.py # 主程序文件 ├── start.bat # Windows启动脚本(带暂停) ├── dist/ # 打包生成的EXE文件 │ └── 文件重复查找工具.exe ├── build/ # PyInstaller构建文件 └── requirements.txt # Python依赖列表 ``` ### 打包 EXE 文件 ```bash # 安装 PyInstaller pip install pyinstaller # 打包为单个EXE文件(无控制台) python -m PyInstaller --onefile --noconsole --name "文件重复查找工具" file_organization.py # 打包完成后,EXE文件位于 dist/ 目录下 ``` ### 技术栈 - **Python 3.6+** - **Tkinter**:图形界面框架 - **Threading**:多线程扫描 - **Send2trash**(可选):文件移至回收站 - **PyInstaller**:打包为EXE --- ## 📸 界面预览 ### 主界面 - 顶部:路径选择和扫描按钮 - 中部:进度条和状态显示 - 底部:结果列表和操作按钮 ### 结果列表 - 分组显示重复文件 - 每组显示:文件名、文件大小、文件数量 - 子项显示:完整文件路径 - 复选框:选择要删除的文件 ### DPI 适配 程序会自动检测系统 DPI 设置,并调整界面元素大小: - 100% 缩放:标准大小 - 125% 缩放:放大 1.25 倍 - 150% 缩放:放大 1.5 倍 - 200% 缩放:放大 2 倍 --- ## ❓ 常见问题 ### Q1: 扫描后删除文件失败? **A:** 可能的原因: 1. 文件正在被其他程序使用 → 关闭占用程序后重试 2. 没有足够的权限 → 以管理员身份运行程序 3. 文件路径过长 → 程序已自动处理,但某些极端情况可能失败 4. send2trash未安装 → 安装后删除更安全 ### Q2: 扫描速度很慢? **A:** 优化建议: 1. 设置最小文件大小,过滤小文件 2. 减少扫描路径,只扫描需要的文件夹 3. 确保磁盘没有物理故障 ### Q3: 删除的文件在哪里? **A:** - **已安装 send2trash**:在 Windows 回收站中 - **未安装 send2trash**:文件已永久删除,无法恢复 ### Q4: 如何判断是否是真正的重复文件? **A:** 本工具基于文件名和文件大小匹配,如果需要精确匹配(基于文件内容),建议使用 MD5 或 SHA256 校验。可以在导出结果后,使用其他工具进行二次验证。 ### Q5: EXE文件无法运行? **A:** 1. 确认下载完整,文件大小约 13MB 2. 右键 → 属性 → 解除锁定(如果有) 3. 暂时关闭杀毒软件重试(某些杀毒软件可能误报) 4. 如果问题依旧,尝试使用源码运行 ### Q6: 是否支持 macOS 或 Linux? **A:** 当前版本主要针对 Windows 优化,但代码理论上可以在 Linux/macOS 上运行(需修改部分 Windows 特定功能)。未来版本会考虑跨平台支持。 --- ## 🤝 贡献 欢迎贡献代码、报告 Bug 或提出新功能建议! ### 贡献方式 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ### 代码规范 - 遵循 PEP 8 编码规范 - 添加适当的注释和文档字符串 - 确保代码在不同 DPI 下正常显示 --- ## 📄 许可证 本项目采用 [MIT License](LICENSE) 开源许可证。 --- ## 🙏 致谢 - [Tkinter](https://docs.python.org/3/library/tkinter.html) - Python GUI 框架 - [Send2Trash](https://github.com/arsenetar/send2trash) - 跨平台回收站支持 - [PyInstaller](https://pyinstaller.org/) - Python 打包工具 --- ## 📮 联系方式 - **项目主页**:[https://gitee.com/zmh/file_organization](https://gitee.com/zmh/file_organization) - **问题反馈**:[Issues](https://gitee.com/zmh/file_organization/issues) - **功能建议**:[Discussions](https://gitee.com/zmh/file_organization/discussions) ---
**如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!** Made with ❤️ by Your zmh