收藏扫描与更新:新歌扫不出来的原因和办法
收藏不是静态快照,它靠扫描机制与硬盘保持同步。这篇讲扫描怎么工作,以及最常见的同步问题——「新加的文件怎么不出现」。
扫描的基本机制
- 首次扫描:指定收藏目录后全量读取,每个音频文件的标签信息进数据库,这一步耗时与曲库大小成正比,几万首的库第一次要等一会儿;
- 增量更新:之后的默认行为是增量扫描——只处理有变动的部分,新增文件、改名、移动都会被识别,速度远快于首次;
- 启动时与手动触发:也可以手动发起扫描(收藏浏览界面的扫描入口),怀疑数据不同步时主动跑一次是好习惯。
官方 3.3 的发布公告还提到一个细节改进:防止并发扫描结果同时写数据库引起冲突——也就是「扫到一半别再触发一次扫描」是官方都认为值得修的问题,日常使用保持这一点即可。
新文件扫不出来:按这个顺序排查
这是老用户最常遇到的场景,按命中率排序:
- 等增量扫描触发:刚复制完文件就刷新收藏,可能还没扫到;手动触发一次扫描再看;
- 确认文件在收藏目录之内:下载到了收藏目录外(比如临时目录)的文件永远不会进收藏——挪进收藏目录再扫;
- 检查标签可读性:标签损坏或极端编码的文件可能无法正常入库;3.3 的数据库字符集升级专门改善了极端字符(比如播客描述里的 emoji)的处理;
- 嵌套目录名问题:老版本有过一个边界情况——当某文件夹名是另一收藏文件夹名的子串时,改动会漏识别;新版本已修复,遇到类似怪象先升级版本;
- 重启再扫:以上都排除后,重启应用并全量重扫一次。
挪动、改名与删除
- 在收藏目录内部挪动/改名:增量扫描能跟上,收藏记录会更新;
- 把文件挪出收藏目录:下次扫描后从收藏消失(磁盘上的文件当然还在——它只是不再被索引);
- 在收藏浏览里删除:从收藏里移除条目时注意区分「移出收藏」与「删除磁盘文件」两种语义,删除操作想清楚再确认。
扫描与数据库的关系
收藏数据存在内置数据库里,评分、播放次数、统计都依附于它。数据库层面的配置(外部数据库等进阶选项)见 远程收藏与外部数据库。整理过程中的其他疑难杂症汇总在 故障排查。