[转]百度云同步盘自动误删文件的恢复方法

0.导言

百度云同步盘(不是百度网盘软件,也不是百度云管家软件!)虽然已经停止更新很久了,版本号一直停留在3.9.6.x好多年了,但是之前是一直可以正常使用的。曾经有段时间出现过无法正常登录,关联好微博和百度账号,然后用微博账号登录就可以了。

然而从这个月开始,我自己的百度云同步盘已经出现了三次莫名其妙自动删除本地文件的现象了,而且每次删将近200G。虽然文件还都在网盘上存着,并且电脑反应过来后又会莫名其妙的重新自动下载回来,但是天天这么整谁也吃不消对吧。

所以决定从本地把误删的文件找回来,然后放弃掉百度云同步盘。但是在此之前需要把误删的文件在本地恢复。

1. 恢复原理

实际上你的文件并没有删除,只是被转移到百度云同步盘文件夹下的“.baohe.cache/.delete”文件夹下,以自动日期命名的文件夹里。不过文件已经全部重新以md5码命名,并且没有任何目录结构。而对应原文件名/目录结构与当前md5文件名关系的则是该目录下的manifest.xml文件。

2. 需要工具:

2.1 百度网盘的官方恢复工具dataRecovery.exe,下载地址:http://pan.baidu.com/s/1eQtMSsa。这个工具有种种小问题,所以可能需要(2)(3)。

2.2 STDU XML Editor,下载地址:http://www.stdutility.com/stdu-xml-editor.html

2.3 Notepad++,下载地址:https://notepad-plus-plus.org/downloads/

3. 恢复过程

将官方恢复工具直接解压复制到以文件,运行之。此时会出现一个“恢复”文件夹,文件夹中就是改回原名和原目录结构的文件,剪切回百度云目录即可。

假如恢复中没有任何报错,最终会显示“已恢复XXXX个文件”,恢复完成。

如果过程中出现报错,请先不要关闭当前窗口!!见下文。

4. 解决恢复过程中的报错

4.1 报错的原因

经过我自己验证,出现报错可能性有两种:

4.1.1 文件名有该恢复工具不支持的字符,我发现的有韩文字符、部分非英文西文字符(字母上奇怪符号之类)

4.1.2 文件名过长,或者文件名本身不是特别长但是加上前面的目录路径后过长。

无论哪种情况,处理方案都是在那个需要在文件名里修正或删除不支持的符号,或者修改文件名。也就是修改manifest.xml对应的条目。

然而,百度云自己生成的manifest.xml似乎是不完善的xml文件,直接使用notepad++工具打开的话可能会无响应,即使勉强打开也会混成一坨难以查找。因此我们需要先将弄成格式比较正常的XML文件,方法是使用STDU XML Editor打开后另存为即可。

4.2 报错的处理

4.2.1 备份当前的manifest.xml(一定不能省!)

4.2.2 使用STDU XMLEditor打开manifest.xml。如果文件列表过多,打开过程会非常漫长,请耐心等待。完整打开后,另存为manifest.xml,替换掉原来的文件。

4.2.3 使用Notepad++打开这个manifest.xml,此时可以正常打开了。

4.2.4 根据dataRecovery.exe提供的信息,在Notepad++里搜索定位到报错的文件位置的上一行,也就是运行dataRecovery.exe后的命令提示符里出现的最后一个文件信息(报错行本身不出现在命令提示符里)。可以搜索md5码、比较文件列表之类的方法来确定。注意相同文件的md5码是相同的,如果有多个相同文件的情况一定不要搞错行。

4.2.5 删除从第3行(注意是第3行)到报错当前上一行的所有行,否则待会恢复的时候dataRecovery.exe又会从头再来一遍。

4.2.6 修改替换报错行中的奇怪字符/文件名长度,这个应该很容易看出来。

4.2.7 保存。关闭已经报错的Recovery.exe命令提示符,重新运行Recovery.exe,应该会继续下去。

4.2.8 如果继续出错,循环往复该过程

4.2.9 全部完成后将“恢复”目录中的内容剪切回百度云目录

5. 确定所有文件都恢复的情况下,确定所有文件都恢复的情况下,考虑删除该文件夹。

为了避免以后再出问题,考虑卸载百度云同步盘,或者至少最近这段时间不使用/不自动启动。以上。

PS:如果某个文件夹出现大量的报错字符(比如有大量韩文及非英语西文文件名的音乐文件夹),觉得一一改名实在太过痛苦的话,可以考虑不恢复该文件夹(也就是直接在manifest.xml中将涉及到该目录的行数删除),直接用百度网盘重新下载该文件夹(如果云盘端没有删除的话)。

转载:http://post.smzdm.com/p/243860/