如何恢复损坏的下载文件

此目录下的文档都是用户自己编写的指南,并未经过eMule(电骡)开发人员的验证。不过对于大多数用户而言,这些文章仍然颇有裨益。你可以在论坛的此专用主题贴找到相关的提问与评论


由于这篇指南How To Save "corrupt" Downloads!(作者:Birk)及其原始的西班牙文文档Recuperar con MetMedic las descargas desaparecidas(作者:risalan)的年头已经太长了,我翻译了Bagusajalf所写的较新的一篇西班牙文指南Recuperar con metFileRegenerator las descargas desaparecidas。感谢Babelfish的帮助!

metFileRegenerator这款软件能够修复eDonkey、eMule以及其它兼容客户端的受损下载文件。V1.4版本需要安装Java运行时环境v1.4或更高版本。如果需要恢复超过4GB的文件,则需要使用v3.0.16(2006.10.8)或之后的版本。此软件仍在继续开发中。

当我们在eMule中添加下载时,会自动在临时目录(默认为\eMule\Temp\)下新建3个文档:
xxx.part(下载文件本身)、xxx.part.met(包含下载文件中每个文件块的信息。文件块大小为9.28MB,若位于文件尾部则会更小)以及xxx.part.met.bakxxx.part.met的备份,其中“xxx”是某个数字。

有时eMule或操作系统会意外关闭,此时一个或多个xxx.part.met文件可能会发生损坏。相应的下载会从eMule的传输窗口中消失,并且在服务器窗口的日志页中将会显示如下一条错误信息:

01/06/2006 14:53:07: 错误:无效part.met文件版本! (x.part.met => (null))
或者
01/06/2006 14:53:07: 错误:001.part.met()损坏,无法加载文件

“太倒霉了!我下617.15MB的文件只差最后0.15MB,结果就丢了……”

如何恢复丢失的下载

/!\重要提示:在操作临时文档之前,应先保存备份,这样即使某次尝试没有效果,也能安全返回到开始恢复前的状态。/!\

方法1
这是最简单的方法,应该最先尝试。

在不关闭eMule的情况下,将xxx.part.met.bak文件及时拷贝到\Temp目录之外(即手动保留该文件上一版本的备份),并且将其改名为xxx.part.met
关闭eMule,将备份的xxx.part.met文件拷回到\Temp目录下,覆盖掉当前的同名文件。
启动eMule,看看下载文件是否已经得到修复。smile.gif

假如此方法并未奏效,那么试一试……

方法2

  • 运行metFileRegenerator(需要先安装Java运行时环境 v1.4或更高版本),选择Recovery,点击Next
  • 选定eMule的临时目录,注意丢失下载的xxx.part文件应在此目录中,点击Next
  • 小提示:

    • met文件将恢复成旧格式。

    点击Next

  • 选择丢失下载所对应的xxx.part文件。点击Next

  • 现在便开始修复下载文件,并以进度条显示当前的修复进度。
  • 假如还需要修复更多下载文件,重复以上步骤。
  • 关闭metFileRegenerator,启动eMule(会hash这些曾经消失的下载文件)。此时的下载列表中将会出现两个(或若干对)相同的下载:取消掉那些手动添加的空白下载,只保留eMule恢复的下载文件。
  • 现在可以删除之前所保留的各种备份了。请谨慎进行删除操作。dry.gif
  • 假如此方法仍然不能恢复下载文件,而是显示一条错误信息:“download the file again and try MFR again”(没错,这条信息就是这么多余),那就只好使出最后一招了……

方法3

步骤1

假如你不知道丢失的下载文件到底是什么,那么我们首先应当找出xxx.part究竟属于哪个下载。

如果安装了命令解释器插件(eMule Shell插件),可以在Windows资源管理器中显示eMule临时文件内容的相关信息,这样就能够查看每个.part文件所对应的下载了。临时文件信息会在黄色提示框中显示(气泡提示),也会在窗口的内框(状态栏)显示,当然也可以在Vista下通过“详情”以及其它各种方式查看。

不过如果对应的part.met文件损坏的话,可能不会显示任何有用的信息,因为这个插件也是从part.met文件中读取各个文件块信息的……

你也可以在对应的xxx.part.met文档或xxx.part.met.bak文档中直接查找此文件的相关信息。用十六进制编辑器(Ultraedit或WinHex)或文本编辑器(例如notepad.exe(记事本))打开这些文件都行。不过当下载文件损坏时,xxx.part.met文件通常都是空的,有时连文件都消失了……


用十六进制编辑器打开后,所显示的xxx.part.met文件的内容

另一种方法是直接“读取”xxx.part文件,也就是用十六进制编辑器查看此文件的文件头或文件尾,根据一些特征数据识别文件的类型和内容(注意!如果临时文件的块头很大,那么十六进制编辑器可能需要很长的时间才能打开该文件,甚至会造成计算机暂时失去响应),这种方式对数据文件(zip、rar、iso、bin、pdf等等)比较有效。也可以尝试直接用媒体播放器(例如VideoLan Client,参见帮助与支持->特色功能->预览多媒体文件)打开临时文件,这种方式对音频或视频文件比较有效。

假如你实在无法辨别出这个孤零零的xxx.part文件究竟是个什么下载文件,那么这个下载就真的无法恢复了。

步骤2
当鉴别出损坏的是什么下载后,先去重新开始下载同一个文件。注意不能是“相似”的文件,必须是hash值完全相同的文件。
在传输窗口中,在该下载条目上单击鼠标右键,选择显示详情(或将光标停留在该下载条目上),就能看到此文件包含多少个文件段
等到eMule找齐了所有文件块的来源(在文件进度条中不再显示红色部分),并且下载文件的详细信息“Hashset 可用”显示“是”(或已经下载了几兆),停止下载,退出eMule

步骤3

  • 运行metFileRegenerator(需要安装Java运行时环境v1.4或更高版本),选择Recovery,之后点击Next
  • 选定eMule的临时目录,注意丢失下载的xxx.part文件应在此目录中,点击Next
  • 小提示:

    • met文件将恢复成旧格式。

    点击Next

  • 选择丢失下载所对应的xxx.part文件。点击Next
  • 现在便开始修复下载文件,并以进度条显示当前的修复进度。
  • 假如还需要修复更多下载文件,重复以上步骤。
  • 关闭metFileRegenerator,启动eMule(会hash这些曾经消失的下载文件)。此时的下载列表中将会出现两个(或若干对)相同的下载:取消掉那些手动添加的空白下载,只保留eMule恢复的下载文件。
  • 现在可以删除之前所保留的各种备份了。请谨慎进行删除操作。dry.gif

* 注意:metFileRegenerator会在eMule的临时目录中创建一个名为\MFRcache的子目录。之后每修复一个文件就会在此目录下生成一个xxx.part.met.old文件。成功恢复所有下载文件后,可以直接删掉这些临时文件。

eMule Morph系mod在下载文件的右键菜单中有一个“导入未完成文件”的功能,实际上与本帖所描述的功能相同。
添加(与丢失文件相同的)下载后,鼠标右键单击该下载条目,选此菜单项,随后选择丢失的xxx.part文件并进行恢复。此功能已经支持修复超过4GB的下载文件。

在某些更加极端的情况下,下载列表中的所有文件可能会全部消失。如果碰到这种情况,一定要保持头脑冷静。首先检查选项 -> 目录下的临时文件设置是否指向正确的路径,然后重启eMule,按照上面介绍的方法修复所有下载文件。强烈建议在重启eMule之前备份所有临时文件。

由于下载丢失的现象比较少见(我上一次碰到这种情况也是很久以前了),因此以上所描述的恢复步骤缺乏验证,可能并不准确。希望大家不吝指正。smile.gif

祝好

感谢本篇指南的原始作者Bagusajalf。假如你觉得这篇文章有用,可以先整理整理去掉翻译中的错误,然后放到快速帮助与指南中。

祝驾骡愉快biggrin.gif


如何恢复损坏的下载文件》,由Ejack翻译自eMule官方网站英文版帮助与支持《How To Recover Corrupt Downloads》。已编入官网简体中文版《如何恢复损坏的下载文件》。

4条评论隐藏

  1. #1 half unselfish sharer
    2011年3月19日 周六 23:32 | 回复

    太复杂。真正丢失文件再说吧。

  2. #2 ae6ytb
    2011年3月25日 周五 13:47 | 回复

    其实不用这么复杂,有些mod有个“将零散部分导入文件”功能,首先下载一个hush相同的文件(忘记这个文件是什么的话就把曾经下载过的文件重新下载一遍,显示是百分之0的这个文件就是了),然后在下载传播条上右键使用“将零散部分导入文件”,把损坏的临时文件导进去,ok

    今天突然停电,《硬汉部队》里有一个文件下载到百分之九十八损坏,用这个方法成功恢复,(*^__^*)

  3. #3 gg
    2011年3月25日 周五 14:53 | 回复

    @ae6ytb 是hash,兄弟。现在主流mod,xtreme系,morph系,以及其他什么x-ray,neomule都有这个导入文件块功能,叫法可能不同。

  4. #4 AA
    2011年12月21日 周三 23:17 | 回复

    用过xtreme的这个功能,不错。

发表评论

您的Email将不会显示出来。头像请至Gravatar.com注册上传。*号标注项为必填。

如果您想输入中文却暂时没有中文输入法程序,可以使用在线的

*
*
*
标签用法
表情:
:mrgreen: :| :twisted: :arrow: 8O :) :? 8) :evil: :D :idea: :oops: :P :roll: ;) :cry: :o :lol: :x :( :!: :?:
字数:0