# 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 + 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