# file-scanner **Repository Path**: michael998/file-scanner ## Basic Information - **Project Name**: file-scanner - **Description**: 同名文件查找工具,减少磁盘空间占用。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: man - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-30 - **Last Updated**: 2026-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 跨目录同名文件查找与删除工具 递归扫描指定目录,找出**文件名相同**(含扩展名,Windows 下不区分大小写)且位于**不同父目录**的文件,在图形界面中分组展示,支持勾选后**永久删除**。 ## 环境要求 - Windows(已在 Windows 10 上设计) - Python 3.10+(推荐使用已安装的 Miniconda) Miniconda 路径示例:`D:\ProgramData\Miniconda3\` ## 运行方式 ```powershell cd d:\cursor-develop D:\ProgramData\Miniconda3\python.exe duplicate_filename_finder.py ``` 可选:创建独立 conda 环境 ```powershell D:\ProgramData\Miniconda3\Scripts\conda.exe create -n dup-finder python=3.11 -y D:\ProgramData\Miniconda3\Scripts\conda.exe activate dup-finder python duplicate_filename_finder.py ``` 若启动时报 `No module named '_tkinter'`,请安装 tk: ```powershell conda install tk -y ``` ## 创建桌面快捷方式 双击运行项目里的 **`create_desktop_shortcut.bat`**,会在桌面创建快捷方式 **「同名文件查找工具」**(同时有 `DuplicateFilenameFinder.lnk` 备份名)。 - 使用 `pythonw.exe` 启动,不会出现黑色命令行窗口 - 使用项目自带图标 `app.ico` - 之后可像普通软件一样在桌面双击打开 若移动了项目目录,请重新运行一次 `create_desktop_shortcut.bat` 更新快捷方式。 ## 打包与安装(分发给他人 / 本机免 Python 运行) 程序仅依赖 Python 标准库;打包后**无需安装 Python** 即可运行。 ### 开发者:生成安装包 1. 双击运行 **`build_installer.bat`** 2. 输出目录:`installer_output\` | 产物 | 说明 | |------|------| | `DuplicateFilenameFinder_Setup_1.0.0.exe` | 标准安装向导(需本机安装 [Inno Setup 6](https://jrsoftware.org/isinfo.php) 后重新打包才会生成) | | `DuplicateFilenameFinder_Portable_1.0.0.zip` | 便携包,解压后运行 `install.bat` 安装 | | `dist\DuplicateFilenameFinder\` | 未打包的绿色版目录,可直接运行 `DuplicateFilenameFinder.exe` | ### 最终用户:安装方式 **方式 A — 安装程序(推荐)** 1. 双击 `DuplicateFilenameFinder_Setup_1.0.0.exe` 2. 按向导选择安装路径,可勾选「创建桌面快捷方式」 3. 从开始菜单或桌面启动 **同名文件查找工具** 4. 在「设置 → 应用」中可卸载 **方式 B — 便携包安装** 1. 解压 `DuplicateFilenameFinder_Portable_1.0.0.zip` 2. 双击 **`install.bat`** 3. 程序安装到 `%LOCALAPPDATA%\Programs\DuplicateFilenameFinder` 4. 自动创建开始菜单与桌面快捷方式;卸载运行安装目录内的 `uninstall.bat` 若桌面快捷方式名称乱码:删除旧快捷方式后运行 **`fix_desktop_shortcut.bat`**,或重新运行 `install.bat`。 **方式 C — 绿色版(免安装)** 直接运行 `dist\DuplicateFilenameFinder\DuplicateFilenameFinder.exe`,无需安装。 ## 使用步骤 1. 点击 **浏览...** 选择要扫描的根目录 2. 点击 **开始扫描**;扫描过程中界面保持响应,可随时点击 **暂停** 3. 暂停后查看列表,**仅点击「勾选」列**的 `[ ]` 切换为 `[X]`;**右键**文件行可打开文件或所在目录 4. 勾选后点 **删除已勾选** 5. 使用顶部 **排序** 下拉框(如「文件大小」)+ **升序/降序**,或点击表头 **大小/路径/修改时间** 排序 6. 删除后若扫描未完成,点击 **继续扫描** 从上次位置接着扫 7. 可使用 **全选** / **全不选** 批量勾选 ## 匹配规则 - 按完整文件名(含扩展名)分组 - Windows 下不区分大小写(`readme.txt` 与 `README.TXT` 视为同名) - 仅显示至少出现在 **2 个不同目录** 中的同名文件 ## 风险提示 - 扫描在后台以小块分批执行,暂停后可先删一部分再继续扫 - 删除为**永久删除**,不可恢复,操作前请仔细核对路径 - 无权限或被占用的文件会删除失败,并弹出错误提示 - 扫描会跳过无权限访问的目录 ## 项目结构 | 文件 | 说明 | |------|------| | `duplicate_filename_finder.py` | 程序入口与图形界面 | | `scanner.py` | 目录扫描与分组逻辑 | | `models.py` | 数据模型 | | `requirements.txt` | 运行时依赖说明(仅标准库) | | `requirements-build.txt` | 打包工具(PyInstaller) | | `build_installer.bat` | 一键打包脚本 | | `installer.iss` | Inno Setup 安装向导配置 |