自己的音乐文件夹里充斥着大量重复歌曲,这不仅占据了存储空间,还让音乐管理变得混乱不堪。为了解决这个问题,我用Python开发了一款专门用于音乐文件夹查重的工具,旨在帮助用户查找并管理重复的音乐文件,让音乐库更加整洁有序。
- 按文件名:通过文件名快速定位可能重复的音乐文件。
- 按文件大小:依据文件占用空间大小进行初步筛选。
- 按MD5值:利用文件的唯一MD5哈希值,精准找出内容完全相同的文件。
- 混合模式:先按文件大小筛选,再对符合条件的文件计算MD5值,兼顾效率与准确性。
支持常见的音乐格式,包括 .mp3
、.wav
、.flac
、.aac
、.ogg
、.m4a
、.ape
和 .wma
,满足不同用户的音乐收藏需求。
采用文件索引缓存技术,显著加快重复扫描速度。首次扫描后,后续扫描将利用缓存信息,大幅节省时间。
不仅支持本地磁盘路径,还支持网络路径和映射驱动器,方便你管理跨设备的音乐文件。
- 最小文件大小:设置搜索的文件大小下限,过滤掉过小的文件。
- 最大搜索深度:控制搜索的目录层级,避免不必要的深度搜索。
- 区分大小写:根据需求选择是否区分文件名的大小写。
- 仅比较标题:专注于音乐文件的标题信息进行比较。
- 克隆项目仓库:
git clone https://github.com/Rensr0/Music-Finder.git
- 进入项目目录:
cd Music-Finder
在命令行中输入以下命令启动程序
python main.py
- 选择扫描目录:在界面中指定要进行查重扫描的音乐目录。
- 设置查重方式:根据需求选择合适的查重方式。
- 调整高级选项(可选):根据需要设置最小文件大小、最大搜索深度等高级选项。
- 开始搜索:点击“开始搜索”按钮,程序将开始扫描并查找重复文件。
- 管理重复文件:扫描完成后,在结果列表中对重复文件进行管理,如删除、移动等操作。
配置文件存储在用户目录下的 .music_finder
文件夹中:
settings.json
:保存用户的个性化设置,如搜索选项、查重方式等。index/
:文件索引缓存目录,用于存储文件的索引信息,提高扫描效率。
Music_Finder/
├── core/ # 核心功能模块
│ ├── music_finder.py # 查重核心逻辑实现
│ ├── file_info.py # 文件信息封装类
│ ├── file_index.py # 文件索引管理模块
│ └── enums.py # 枚举定义文件
├── gui/ # 图形界面模块
│ ├── main_window.py # 主窗口界面
│ └── widgets/ # 自定义控件目录
├── config/ # 配置管理模块
└── main.py # 程序入口文件
MusicFinder
:负责实现音乐文件的查重核心逻辑,根据不同的查重方式进行文件比较。FileInfo
:封装文件的基本信息,如文件名、大小、MD5值等,方便后续处理。FileIndex
:管理文件的索引信息,包括索引的创建、更新和查询。MainWindow
:图形界面的主窗口,提供用户操作界面和交互功能。Settings
:负责管理用户的配置信息,包括读取和保存配置文件。
- 实现基本的文件查重功能,支持多种查重方式。
- 引入文件索引缓存系统,提高重复扫描效率。
- 提供友好的图形界面操作,方便用户使用。
- 支持配置保存功能,用户可保存个性化设置。
我们欢迎广大开发者积极参与项目的开发和维护。如果你发现了问题或有新的功能建议,请提交 Issue;如果你有代码改进或新功能实现,欢迎提交 Pull Request。
本项目遵循 GNU GPLv3 进行授权。在该许可协议的框架下,你享有充分的自由来使用、修改和分发本项目。不过,还请务必仔细研读协议的具体条款,以确保自身的使用行为完全符合规定。