一块旧硬盘、一个下午,和一个被误解的目录
1 月 11 日下午三点半,我把那块边角磨白的 1TB 移动硬盘插进笔记本,指示灯闪了两下。文件夹窗口弹出来的时候,我先是愣了一下:里面并不是我以为的照片备份,而是一个叫 「17tuku_restore」 的目录,创建时间停在 2019 年 8 月 3 日 22:41。点开,第一层有 6 个文件夹,第二层开始就是编号,从 0001 一直排到 4137,每个编号下面还有三五张缩略图和一份 .txt 索引。我数了一下,总共 41,362 个文件。这就是我后来决定写这篇「17图库资料库恢复免费版下载指南」的起点——不是因为网上没有相关说法,恰恰相反,是因为说法太多,而几乎没有一条说法真正对应过一块真实的硬盘。
整理到第三天,我才意识到自己一开始理解错了。所谓「资料库恢复」,在我这块盘上根本不是把删掉的东西找回来,而是把一份被打散过的目录重新按原编号拼回去。硬盘里那份 manifest_2019.txt 记录了原始路径,但编码是 GBK,而我的文本编辑器默认 UTF-8,于是所有中文目录名全是乱码;我用了半个晚上,在 VS Code 里把 files.autoGuessEncoding 打开,才第一次看清第 3 层文件夹的真实名字——它们其实是按图源分类的,而不是按时间。这个细节后来被我写进整理笔记的第一页,因为它解释了一个长期存在的误会:很多人以为资料库是「一个包」,其实它是「一套目录约定」,恢复的难点从来在约定,不在文件本身。
免费版和「完整版」之间,差的到底是不是内容
我花了两个晚上比对三种常见流传的版本说明。第一种声称免费版只是「试读」,完整内容需要另外授权;第二种说免费版与完整版内容一致,只是去掉了索引工具;第三种最含糊,只说「功能上有差异」。我把硬盘里留存的 2019 年索引文件和公开流传的几份清单逐条对照,得出的结论是:差异主要集中在校验与检索这两层,而不是内容层。编号 0001 到 4137 的目录结构在几种版本里是一致的,真正被切掉的是那份可以把编号映射回原始路径的对照表——换句话说,没有对照表,你手里有一堆文件,却不知道该把它们放回哪一格。这个判断我在第 5 页的笔记里写得很直接:这不是「阉割」,这是「少了一把钥匙」。
也正因为如此,我在整理时把重心放在对照表的重建上,而不是反复去找所谓「完整包」。具体的做法是:先按修改时间给所有文件排序,再用编号前缀分组,最后用 manifest 里残留的路径片段做匹配。整个流程我跑了 4 轮,第 4 轮才把未匹配项压到 137 个。这 137 个我没有强行归类,而是单独建了一个 _unresolved 文件夹,备注了每个文件的十六进制头信息。这个习惯是从我读研时整理古籍扫描件留下来的——宁可留一个待办区,也不要把不确定的东西塞进确定的格子里。顺便说一句,站内那篇讲tk49图库下载安卓版的旧文里其实提到过类似的分组思路,只是当时没展开。
「目录不是容器,目录是一份承诺:你放在这里的东西,下次还能在这里找到。」——这句话我记了七年,出处是 2018 年一次内部整理培训的手写讲义,讲者姓周,讲义第 3 页。
一个明确但我愿意为之负责的个人观点
说实话,我认为现在网上大部分打着「17图库资料库恢复免费版下载指南」旗号的页面,被严重高估了。它们中的绝大多数只是把同一个模糊说法复制了十几遍,既没有给出目录层级,也没有说明版本差异在哪一层,更没有一个人愿意承认「对照表丢了就是丢了,得自己重建」。我并不是说这些页面恶意,我是说它们偷懒——而在一件需要耐心的事上,偷懒的指南比没有指南更耽误人。我甚至有点反感「一键恢复」这个词,因为在我这块盘上,没有任何一步是一键完成的,每一步都要先判断、再执行、再回退验证。这个观点可能会得罪一些做同类内容的人,但我还是写下来了,因为如果连整理笔记都开始讨好读者,那它就不值得被收录。
当然,我也在修正自己。1 月 12 日晚上,我把重建好的对照表导成了一份 CSV,用 LibreOffice 打开时发现有两列错位,原因是我在匹配时用了制表符而 manifest 里混着全角空格。这个错误让我多花了 40 分钟重跑第 4 轮。写在这里是想说明:连我自己都会在第 4 轮出错,所以任何声称「三步搞定」的说法,读者都有理由保持怀疑。如果你正在做类似的事,建议先准备好一个可以随时回滚的中间目录,再把手机qq浏览器快捷方式这类入口页收藏起来,方便随时对照原始页面结构,而不是只依赖二手描述。
整理方法:我实际用的四个步骤
第一步是冻结原始盘,只读挂载,任何操作都在副本上做。第二步是建三层目录:raw 放原样拷贝,work 放重建中的中间结果,final 放通过校验的成品。第三步是写一份最小可用的校验脚本——我用的其实就是文件头比对加编号前缀正则,不到 60 行,但它能在我误操作时第一时间报警。第四步是把每一次判断记成一行日志,包括时间、编号、依据和结论,日志本身就是这份整理的可信度来源。这四步没有一步是「技巧」,全是笨办法,但我用它们把 41,362 个文件里能确认的 41,225 个归了位,剩下 137 个进了待办区,账目是清楚的。
顺带记录一个容易被忽略的细节:索引文件里的编号并不总是连续,4137 之后直接跳到 4152,中间空着的 14 个编号在后来的目录里也没有对应文件。我没有去补,也没有猜。这类空缺在整理里往往是信息而不是错误,因为一旦你开始填补,就再也分不清哪些是原始记录、哪些是你自己的推断了。同样地,站内那篇关于QQ浏览器自动播放视频怎么关闭的设置说明也提醒过我一件事:默认行为会悄悄改变你对结果的判断,恢复时也一样,关闭一切自动重命名和自动归类,手动来。
关于收录边界:我为什么把 137 个文件留在外面
有朋友问我,既然已经做到 99.7%,为什么不干脆把那 137 个也归进去,让数字好看一点。我的回答是:百分之百是一种叙事,不是一种状态。在资料整理这件事上,最危险的不是漏掉,而是把不确定的东西伪装成确定的。那 137 个文件我现在还在慢慢看,其中大约 60 个从文件头看像是同一批扫描件,另外 30 多个可能是索引之后新增的,剩下 40 来个我完全没有头绪。我把它们按文件头分组、写了备注,但拒绝给它们贴标签。这份克制,是我从 2018 年那份手写讲义里学到的最有用的一课,也是我愿意在这篇指南里反复强调的部分。要了解这类资料来源背景的读者,也可以参考站内这篇三期内必开一期的精准资料的整理方式,看别人是怎么处理不确定项的。