百度云同步盘(似乎已停止更新)有时会误删文件。比如,我将备份文件夹a目录中的所有文件移动到本地文件夹b中。同时我将百度云盘中的备份目录A也清空。 整理完成后,我重新将整理完成的文件移动到a中,让百度云同步盘自动同步。可是我昨天发现,现在里面只剩下一个文件夹,其他的都被删除了。并且,电脑中的回收站只有文件夹目录,没有文件。百度云上的回收站也没有任何东西。这真是抓急啊,幸好网上有朋友分享了这两篇文章。先做转载,不分先后顺序。我是用第一篇文章修复的,后来才看到第二篇。

以后大规模整理前,还是先本地备份,并保留一两天为好。

PS:后来百度云官方给我提供了个程序,估计原理一样。原文如下:

如本地同步根目录有隐藏的.baohe.cache\.delete文件夹(其中有按删除日期命名的文件夹,里面存放以MD5码命名的被删文件,以及一个将MD5码与原文件名一一对应的配置文件manifest.xml), 可使用官方提供的恢复工具(http://pan.baidu.com/s/1eQtMSsa),恢复部分用户使用同步盘删除的文件。方法:将上面分享的exe文件,放到.baohe.cache\.delete下需要恢复的以删除日期命名的文件夹内,运行,结束后会生成一个以“恢复”命名的文件夹,里面就是恢复出来的文件。

如出现“This application has requested the Runtime…in an unusual way”错误,一般是因为manifest.xml文件中的路径和文件名含有乱码造成的,只需通过记事本或专业文本编辑器打开该文件,通过搜索程序界面显示的最后一个成功恢复的文件相关信息(文件名或md5码,能唯一定位就行),定位到确定位置,去掉多余的乱码(有些乱码在记事本中看不见),有时需要手动替换下扩展名前面的小圆点,保存,点击重试,即可继续回复。

———————————————————————————————————

第一篇:百度网盘本地误删除,文件恢复(附程序)

原文地址:http://hi.baidu.com/joinwage/item/cee4604b2a0d992110ee1e4f

注:该程序在Win10下有时会报错,建议使用上面的官方版。

近日,点开百度云让其自动同步。昨天发现好多文件不见了,大惊。百度云居然未经同意删除文件,时间已经过了10日。百度网盘回收站里找不到了。后在同步目录发现一隐藏文件夹”.baohe.cache”,点开来看,文件都在里面,不过文件名被其改成了md5码,里面还有一个配置文件manifest.xml,有对应文件原名称。

需要恢复的有2万多个文件,人工操作肯定是非选项。于是写了运行在net2.0下的自动恢复程序(附源码),只需填入manifest.xml路径就可以恢复了,如果需要的朋友可以下载:http://pan.baidu.com/s/1kTmh7DX

———————————————————————————————————

第二篇:恢复百度云盘本地误删的文件脚本—python

作者:AltenLi     原文地址:http://blog.csdn.net/altenli/article/details/23664973

———————————————————————————————————

今天被同步盘搞得焦头烂额。

辛苦码的代码(除了重要的、备份过的)都被删掉了……

当时我就石化了。。。

随后发现同步盘目录有个delete目录,里面还有manifest.xml,和一堆改了名的文件,

看到manifest.xml的内容时,瞬间觉得有救了,立马开搞python

废话不多说,直接上代码:

-- coding:utf-8 --
 from xml.etree import ElementTree
 import os
 import sys
 reload(sys)
 sys.setdefaultencoding( "utf-8" )
 def convertfile(cachePath,orgPath):
     '''恢复文件'''
     start=0;
     while True:
         index = orgPath.find('\', start)
         if index == -1:
             break
         start = index + 1
 orgDir=orgPath[:start] print 'orgDir:',orgDir if not os.path.exists(orgDir):       os.makedirs(orgDir)   if not os.path.exists(orgPath) or(os.path.exists(orgPath) and (os.path.getsize(orgPath) != os.path.getsize(cachePath))):       file_in=open(cachePath, "rb")     file_out=open(orgPath, "wb")     file_out.write(file_in.read())      file_in.close()     file_out.close() def read_xml(text): '''读xml文件''' root = ElementTree.fromstring(text) lst_node = root.getiterator("record") for node in lst_node:     cp=node.attrib['cachePath']     op=node.attrib['orgPath']     cp=cp.replace('~','.')     op=op.replace('~','.')     print cp+'->'+op     convertfile(cp,op) if name == 'main': '''将本文件放在云同步盘的根目录下, 将mani_file改为需要恢复的manifest文件''' mani_file=".\.baohe.cache\.delete\20140412\manifest.xml" read_xml(open(mani_file).read())

本文件在Python2.7.6下正常,3.4貌似有问题!

python可以在官网下载:https://www.python.org/downloads/

将本文件(假如叫做huifu.py)放在云同步盘的根目录下,比如云同步盘在“d:\baiduyun\”,那么文件应该在“d:\baiduyun\”下,最终是这样的“d:\baiduyun\huifu.py”

千万不要轻易从百度云上删除已经上传的文件啊!血泪教训。。。

原始出处:https://www.cnblogs.com/Smile-line/articles/4275164.html