凌晨两点,那台 2019 年的 ThinkPad 突然弹出一个文件夹
3 月 16 日晚上十一点多,我把那台 2019 年买的 ThinkPad T490 从柜子底下翻出来,插上电,等它从休眠里醒过来。屏幕上还停留在三年前的桌面:一张 1920×1080 的壁纸,右下角挂着「QQ浏览器」的图标。我点开它,本来只是想确认这台机器还能不能联网,结果在地址栏下面看到一行灰色小字——「下载/缓存管理」,顺手点进去,缓存目录里整整齐齐躺着 49 个以日期命名的子文件夹。那一瞬间我愣住了,因为其中第三个文件夹的名字是「49tuku_20230611」,正是我 2023 年 6 月 11 日那天丢失的那批图的命名格式。
这件事的起因要往前推到 2023 年 6 月。当时我在整理一份地方志配图,从旧硬盘里拷出一批扫描件,共 49 张,按编号命名,存在 D 盘一个叫「tuku49」的文件夹里。后来系统重装,那块盘的分区表出了点问题,等我再打开时,文件夹还在,里面却是空的,只剩一个 0 字节的 index 文件。我当时以为彻底没了,甚至把那张机械盘拆下来放进了防潮箱。直到昨晚看到缓存目录,我才意识到浏览器可能在当时「顺手」缓存过缩略图。这个判断后来被证实了一半——缓存的确实是缩略图,但数量、命名逻辑和我记忆里的原图并不完全对应,这就是需要慢慢比对的原因。
真正让我坐下来做记录的,是缓存目录里的一个细节。49 个子文件夹里,有 12 个的修改时间集中在 2023 年 6 月 11 日下午 3 点 07 分到 3 点 41 分之间,间隔大约 2 到 4 分钟一次,说明那天下午我确实在浏览器里反复打开过同一批文件,而且每次打开都触发了新的缓存写入。我按这个时间窗口把 12 个文件夹里的文件全部导出,一共得到 63 个文件,其中 49 个是 160×160 的缩略图,剩下 14 个是体积更小的预览图。为了判断哪些能对应回原图编号,我把缩略图按文件名里的哈希前缀排了序,再和当年从论坛下载的 4 9图库资料 索引表逐条比对,索引表里记录的是原始文件名与内容摘要,这一点帮了大忙。
比对过程比想象中枯燥。索引表是 xlsx 格式,我用 Python 写了个脚本,把缩略图的平均色值和索引表里的「主色描述」列做粗匹配,筛出 31 张高置信度的,剩下 18 张需要人工看。人工看的那部分,我用了最笨的办法:在文件管理器里选中文件,右键「打开方式」,选浏览器,看浏览器渲染出来的实际尺寸和缩略图边缘的裁切关系,这其实就是一种最朴素的 浏览器打开文件 验证法。这一步花了将近四十分钟,最后确认其中 14 张的构图与索引描述一致,另外 4 张由于裁切严重,只能标记为「疑似」。
说到这里必须提一句 qq 浏览器的行为。我并不是要夸它,恰恰相反,我认为它的缓存目录管理做得相当不透明——用户根本不知道它在本地存了什么、存了多久、什么时候自动清理。但这一次,正是这种「不被注意」的缓存救回了我 31 张图。我在排查过程中还专门去翻了这个站里关于 qq浏览器里的qq文件 那篇旧文,作者把安装目录、用户数据目录、缓存目录三者的关系画了一张表,我照着表把 T490 上的路径对应了一遍,省了不少时间。这一点我承认,工具做得再糟,只要有人愿意把它拆开写清楚,后来的人就能少走弯路。
恢复出来的 31 张高置信度缩略图已经不能算「原图」了,分辨率只有 160 像素见方,做不了印刷,但足够作为目录索引和二次检索的线索。我下一步打算用这些缩略图做反向比对,去几个公开的扫描件存档站里找相同构图的高清版本,这一步涉及 恢复特定图库 的具体流程,我在另一篇笔记里记过参数,这次会复用其中的哈希分段策略。至于那 4 张「疑似」的,我暂时按下不表,等找到更可靠的比对基准再回来处理——我不想为了凑满 49 这个数字,把不确定的东西硬说成确定的。
顺便说一个副产品。在翻缓存目录的时候,我发现浏览器还缓存了几个与图库无关的页面快照,其中一个的域名指向 2024 年的一个原料信息站,内容和我正在做的这批配图毫无关系。我把这个发现记在了 新澳门2024原料网站 那篇的评论区里,算是给同样在清理旧缓存的人提个醒:缓存里什么都可能有,恢复之前先看清楚是什么。这句话听起来像常识,但我在 3 月 16 日晚上确实差点把一个无关的旧页面当成图库索引打开,幸好文件名对不上,停住了。
整理完这批文件是凌晨两点零几分。我把 31 张缩略图、14 张疑似图和一份比对说明放在三个子文件夹里,用日期加恢复批次命名,然后把 T490 关机、拔电、盖回柜子。柜门关上之前我又看了一眼那张 1920×1080 的壁纸,忽然觉得这三年的空白其实没那么干净——机器一直在替我记着一些我自己已经放弃的东西。这大概就是我想把这件小事写成文章的原因:找回丢失49图库这件事,技术上的解法也许只有那几步,难的是承认自己当初放弃得太早。