# 克隆项目
git clone https://gitlink.org.cn/nanakura/osu-slim osu-songs-deduplicator
cd osu-songs-deduplicator
# 编译
go build -o osu-dedup .
# 或者直接运行
go run main.go
# Windows
osu-dedup.exe -path="C:\osu!\Songs"
# Linux/macOS
./osu-dedup -path="/home/user/osu!/Songs"
2. 实际删除模式
# Windows
osu-dedup.exe -path="C:\osu!\Songs" -dry-run=false
# Linux/macOS
./osu-dedup -path="/home/user/osu!/Songs" -dry-run=false
3. 查看帮助信息
osu-dedup -h
输出示例
Scanning Songs folder: C:\osu!\Songs
Found 150 folders with .osu files
A-type folders (with BeatmapSetID): 120
B-type folders (without BeatmapSetID): 30
=== Duplicate Analysis Results ===
Found 5 A-type duplicate groups and 3 B-type duplicate groups
=== Folders to be processed ===
--- A-type folders (BeatmapSetID based) ---
BeatmapSetID 12345:
Keeping: Artist - Song Title (modified: 2023-12-01 15:30:45)
Would delete: Artist - Song Title [Old] (modified: 2023-11-15 10:20:30)
Total folders to process: 8
osu! Songs Folder Deduplicator
一个用于清理 osu! 游戏 Songs 文件夹中重复谱面的 Go 语言工具。
功能特性
BeatmapSetID
进行去重.osu
文件哈希值进行去重工作原理
A型文件夹去重
对于包含
BeatmapSetID
的文件夹,工具会:.osu
文件的BeatmapSetID
BeatmapSetID
的文件夹分为一组B型文件夹去重
对于不包含
BeatmapSetID
的文件夹,工具会:.osu
文件的 MD5 哈希值.osu
文件集合(哈希值完全匹配)的文件夹分为一组安装要求
编译安装
使用方法
基本语法
参数说明
-path
:必需,指向 osu! 的 Songs 文件夹路径-dry-run
:可选,默认为true
,预览模式不实际删除文件使用示例
1. 预览模式(推荐首次使用)
2. 实际删除模式
3. 查看帮助信息
输出示例
安全建议
-dry-run=true
) 查看将要删除的文件故障排除
常见问题
Q: 程序提示找不到路径 A: 请确保
-path
参数指向正确的 Songs 文件夹路径,注意路径中的空格和特殊字符Q: 某些文件夹没有被处理 A: 程序会跳过没有
.osu
文件或无法读取的文件夹,并显示警告信息Q: 删除后发现误删了文件 A: 请使用回收站或备份恢复文件,本工具不会自动备份被删除的文件
许可证
MIT License - 详见 LICENSE 文件
贡献
欢迎提交 Issue 和 Pull Request 来改进这个工具!
免责声明
使用本工具前请备份重要数据。作者不对因使用本工具而造成的任何数据丢失负责。