修复流程四步定方向
四步按顺序走:先看报错位置,再选修还是重取,然后跑修复,最后验一遍条目。跳步容易把好块也弄乱。
读报错位置
报错指着某个文件,问题在块数据。报错指着目录列不出,问题在索引段。两者分开处理。
判断修还是取
只有一两处失配就修。缺卷、缺一大段,或包尾部没写完,重新取一份更快。
跑一次修复
工具栏 → 修复 里选好来源与输出,等扫描走完。入口也可以在 选项 → 设置 → 常规 面板里找到,两条路等价。
验条目与体积
新包先列目录,再对条目数与总体积。数量与体积都对上,才算修复到位。
故障分类
六类现象对应六种成因。按现象归到一类,就不用把所有手段都试一遍。
目录列不出来
索引段读不到时,主界面一片空白。这一层坏了多半伴随尾部没写完,先确认包体是否完整。
解到一半停住
读到某个块时数据对不上校验值,动作停下。记下停住的条目名,那是定位点。
口令提示不对
口令区分大小写与输入法状态。连着输错几次后,先清空再重填,别在旧内容上续写。
条目名是乱码
名字由打包端按某种编码存下。换一个入口重解,或在打包端统一编码再来一次。
缺卷停在断点
分卷包缺一卷就接不上。先补齐编号,再按首卷展开,缺的卷不会靠自己长出来。
体积对不上
条目数一致而总体积偏小,通常是某一卷只写了一半。按卷逐一核对,比整体重下省时间,取包路径另有说明。
校验手段两个层次
校验分两个层次:整体层看包能不能展开,条目层看每个文件与原件是否一致。两层都过才算真修好。
整体层
先看包能不能列出目录。索引完好时目录立刻铺开,条目、体积、时间都在,这一层就算过了。
- 看点
- 目录是否铺开
- 失败
- 转修复流程
条目层
抽两个大文件单独解出,与原件比对。文本类可以直接看内容,二进制类看体积与校验值。
- 看点
- 解出是否一致
- 失败
- 换块重试
修复后复验
修复产出新包后,两层都要重跑一次。只验第一层会漏掉块级别的残损。
- 顺序
- 先整体再条目
- 结论
- 两层都过
分卷缺失
分卷的判定只有一条:编号连续、体积齐、同目录。三条都满足,缺卷这一项就能排除。
- 编号从第一卷开始连续排。中间断一个号,程序就把缺卷当成真缺,不会跳过去继续读。
- 每卷体积应当接近单卷上限,最后一卷可以偏小。中间某卷明显偏小说明传输被打断。
- 所有卷放在同一个文件夹。放在子目录里,程序按同一层找编号,同样报缺卷。
- 修改卷名会打乱顺序。要改名就整套一起改,前缀与编号规则保持一致。
- 缺卷不必整包重取,补那一卷即可。补回后先列一次目录,再看条目是否齐全。其余现象见问答段。
密码问题
口令这一层没有捷径。能做的只有确认输入、确认来源、确认是否开了文件名加密。
输入与大小写
口令区分大小写,也区分全角与半角。输入法在半角状态时打出来的字符才算对。
从别处粘贴口令时,注意末尾是否多带了空格。多余空格会被当成口令的一部分。
三种常见输入失误
- 大小写锁定键处于打开状态
- 全角字母被当成半角符号
- 粘贴时带进了换行或空格
三次输错之后先停下来核对手上的记录,继续连按只会锁掉更多时间。
文件名加密
勾过加密文件名的包,在解开之前看不到任何条目名,只看到编号。这是设计如此,不是损坏。
这类包连数量与体积仍可见,只是名字不可见。目录列不出名字时,先看是不是设了口令。
与损坏的区别
- 要口令才能列表:设了文件名加密
- 输入口令仍空白:包体本身有问题
- 报错提到某块:块数据对不上校验值
分不清这两类时,先在另一台机器上试同一个包,能列表就说明是口令问题。
常见问题
九条按方向排列,前四条讲损坏,后五条讲缺卷与口令。
修复之后条目少了,还能再修一次吗?
可以再修,但结果通常不会更好。扫描拣出的只是还能读的块,重复扫描得到的还是那一批。
报错只说某块不行,怎么定位是哪个文件?
记下停住的条目名与位置。同目录重新解一次,看是否停在同一处,位置一致就是那一块的问题。
修出来的包能直接替换原件吗?
建议先留着原件。新包另一处存放,两层校验都过了再删原件,这样退回还有余地。
包尾巴没下完,看得出区别吗?
看得出。整体体积偏小,或目录能列出而解到最后一个文件时停住,都属于尾部缺失。
缺的卷能自己重新生成吗?
不能。分卷之间是切成几块的整体,缺的那块数据只能重新取,程序无法按编号推算内容。
改了卷名之后为什么解不开?
编号被改名破坏了。整套改回原名,或按新规则统一编号,前缀与序号保持连续。
口令确定没输错,为什么还提示不对?
先检查全角半角与末尾空格。都对时确认手上这份记录是不是这个包的,同名的另一份包口令可能不同。
加密文件名的包,修复会破坏加密吗?
不会。修复只处理块与索引,不动加密层。修完仍然要口令才能解开,条目名照样是隐藏的。
同一份包在两台机器上报错不同,正常吗?
正常。报错位置可能因读取顺序不同而不一样。以体积与条目数为准,两项一致就按同一方向处理。