目录
目录README.md

osu! Songs Folder Deduplicator

一个用于清理 osu! 游戏 Songs 文件夹中重复谱面的 Go 语言工具。

功能特性

  • 智能去重:支持两种去重策略
    • A型文件夹:基于 BeatmapSetID 进行去重
    • B型文件夹:基于 .osu 文件哈希值进行去重
  • 安全操作:默认为预览模式,可选择性删除
  • 命令行界面:简单易用的 CLI 参数
  • 详细日志:清晰的操作过程和结果展示

工作原理

A型文件夹去重

对于包含 BeatmapSetID 的文件夹,工具会:

  1. 提取每个文件夹中 .osu 文件的 BeatmapSetID
  2. 将具有相同 BeatmapSetID 的文件夹分为一组
  3. 保留修改时间最新的文件夹,删除其余重复项

B型文件夹去重

对于不包含 BeatmapSetID 的文件夹,工具会:

  1. 计算文件夹中所有 .osu 文件的 MD5 哈希值
  2. 将具有相同 .osu 文件集合(哈希值完全匹配)的文件夹分为一组
  3. 保留修改时间最新的文件夹,删除其余重复项

安装要求

  • Go 1.16 或更高版本
  • 或者直接下载预编译的二进制文件

编译安装

# 克隆项目
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

使用方法

基本语法

osu-dedup -path=/path/to/Songs [-dry-run=true|false]

参数说明

  • -path必需,指向 osu! 的 Songs 文件夹路径
  • -dry-run:可选,默认为 true,预览模式不实际删除文件

使用示例

1. 预览模式(推荐首次使用)

# 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

安全建议

  1. 首次使用建议:始终先使用预览模式 (-dry-run=true) 查看将要删除的文件
  2. 备份重要数据:在执行删除操作前,请确保已备份重要的谱面文件
  3. 确认操作:实际删除时会要求二次确认,仔细检查后再确认删除

故障排除

常见问题

Q: 程序提示找不到路径 A: 请确保 -path 参数指向正确的 Songs 文件夹路径,注意路径中的空格和特殊字符

Q: 某些文件夹没有被处理 A: 程序会跳过没有 .osu 文件或无法读取的文件夹,并显示警告信息

Q: 删除后发现误删了文件 A: 请使用回收站或备份恢复文件,本工具不会自动备份被删除的文件

许可证

MIT License - 详见 LICENSE 文件

贡献

欢迎提交 Issue 和 Pull Request 来改进这个工具!

免责声明

使用本工具前请备份重要数据。作者不对因使用本工具而造成的任何数据丢失负责。

关于
39.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号