清理已删除文件的数据库条目:让 Kikoeru 库和硬盘状态一致
为什么需要清理
日常管理音声库时你可能会:
- 删了不想留的专辑
- 把某些文件夹移到了别的盘
- 整个硬盘卸掉了
这些操作后,硬盘上的文件没了,但 SQLite 数据库里的条目还在——Web 界面会显示一个"幽灵作品",点进去播放会报错。
自动清理机制
好消息:扫描器每次运行都会检查文件是否真实存在。
当你触发一次扫描时:
- 扫描器遍历数据库里每个作品的根文件夹路径
- 去那个路径看一下——文件还在吗?
- 不在的话,标记该条目为"待清理"(或直接从数据库删除,取决于版本)
- 扫描结束后,Web 界面里这些幽灵作品就消失了
如何触发清理
简单跑一次完整扫描就行。 扫描器在扫新文件的同时,会自动发现已失效的条目并清理。
如果你只是想清理(不想重新扫整个库),可以:
- 先手动删除根文件夹列表(Web 界面里点删除按钮)
- 然后触发一次扫描——扫描器会发现该根文件夹不存在了,清理它下面所有条目
- 再把正确的根文件夹加回来
删除根文件夹时的行为
在 Web 界面点"删除根文件夹":
- 数据库条目不会立即删除
- 只是把该根文件夹标记为已移除
- 需要再跑一次扫描,扫描器才会真正清理
这是故意设计的——防止误删根文件夹时数据直接丢失。
如果清理后发现删错了
- sqlite 数据库备份是你的救命稻草
- 如果之前备份过,恢复一下就好
- 如果没备份且清理了……只能重新扫描重新建索引了
建议的清理频率
不用刻意管——每次正常扫描就是在顺便清理。只要你定期(或自动)跑扫描,数据库和硬盘就会保持同步。不需要单独跑清理步骤。