winrar CRC校验失败,文件被破坏的解决办法

 

    昨天下载了一个将近一G的软件,在解压时,提示“CRC校验失败,文件被破坏”,不至于再重新下载吧,需要四个多小时呢,网上的方法也试了好多种,都不好用...
     我采用的方法很简单:在没有解压完(提示出错的情况下)拷贝文件到其它目录,等解压完成,OK,文件依然好用,这个方法应该是有针对性地,还是枚举一下网络的做法。
     网络的方法:
     办法一:WinRAR本身就带有压缩包修复功能。点击菜单“工具”下的“修复压缩文件”即可,快捷键是“ALT+R”。此法可修复一部分压缩包的常规错误,但是成功率不高。你可以试着连续修复几次。WinRAR的这个功能对压缩包里有很多文件且文件容量都比较小的情况比较适用。 
     办法二: 打开压缩包(不是解压,而是用WinRAR打开),选中你要解压缩的文件,单击鼠标右键,在弹出的菜单里选择“无需确认直接解压缩”,快捷键是“ALT+W”。用此方法,不管是好的压缩包还是坏的压缩包,统统畅行无阻,成功率100%!
     办法三:釜底抽薪法!

  其原理就是让RAR压缩包内损坏的文件解压缩出来,不理会WinRAR的警告,能解压多少就解压多少。解压缩软件还是用WinRAR,不过要做小小的设置。 

在右键点击解压缩文件后跳出的窗口里,把“保留被损坏的文件”复选框选中,点击确定开始解压缩。不要理会解压缩出错的信息,解压缩结束之后你会发现损坏的文件被解压出来了。经过这样解压出来的损坏文件能正常使用的几率还是非常高的。

做好保险工作
  1.做好恢复记录
  原始RAR压缩包在压缩时,如果选择放置恢复记录,这样用户下载后即使CRC出错也有自己修复的机会!

  2.采取分卷压缩
  采取分卷压缩的方法便可较大地减少因为出现不可恢复的错误带来的损失。

  3.老文件也加恢复记录
  有人也许会问,新压缩的RAR压缩包可以加入恢复记录,那么已经压缩过的RAR包有没有办法也加上恢复记录呢?给已经压缩好的RAR压缩包加上恢复纪录是有办法的。

  只需要打开压缩包,在“命令”菜单中选择“保护档案文件”即可。 

 
小常识:
  其实RAR压缩包出错的解决方法主要是以预防为主!如果没有预防,等到真正出了问题,技术上也是没办法完美解决的!像循环冗余校验码(CRC)出错这种情况,如果RAR压缩包不包含恢复记录的话,用户自己想要修复CRC是不可能的!本文的主要目的是想告诉大家一些出错的原因以及讨论一些从根本上预防出错和把损失减少到最小的办法而已!

附:
      1.CRC算法原理
CRC是Cyclic Redundancy Code的缩写,翻译成中文就是“循环冗余码”,它采用多项式编码方法,是一种高效的差错控制方法。所谓的CRC32也就是32位的CRC算法,这就是前面介绍的SFV采用的算法。由于CRC算法编码和解码方法简单,检错和纠错能力强,因此在通信、卫星、控制等领域都有着广泛的应用,在我们的电脑中,也被广泛应用于压缩,光盘刻录、数据存储等方面。
其实说到CRC,大家更多想到的就是压缩软件,因为许多朋友都遇到过压缩软件提示“CRC错误”,这实际上就是一种文件校验过程,只不过这个过程被自动化了:压缩软件在压缩文件时自动在压缩包内添加CRC校验信息,在解压缩时会自动对CRC进行校验,检查文件是否完整和正确。
实战:CRC错误的解决方法
现象一:最近WinRAR不论解压缩什么文件,都是提示“CRC 校验失败,文件被破坏”。
解决方案:出现这种情况,可能是WinRAR的临时文件保存出现了问题,一般只需要打开系统临时目录(Windows 2000/XP下为\Documents and Settings\用户名\Local Settings\Temp),删除其中名为“Rar$DI00.*”之类的文件夹即可。
现象二:刚下载的一个软件压缩包,使用WinRAR解压时提示某个文件“CRC 校验失败,文件被破坏”。
解决方案:这种情况可以判断是那个压缩包出了问题,但很多情况下出现CRC错误时并不代表整个压缩包都已经坏掉,很可能只是某个文件有部分损坏。你可以尝试使用“命令”菜单中的“修复压缩文件”,一般可以解决部分CRC错误的问题。如果仍然不能解决,你可以尝试一下强制解压技巧:首先打开压缩包,选择除那个CRC错误文件以外的所有文件,先将正常的文件解压出来,然后解压那个出错的文件,当提示CRC错误信息时,不要点击任何确认按钮,打开“资源管理器”,找到解压后的文件保存路径,可以看到那个出错的文件实际已经被解压了,把它复制到其他文件保存的文件夹中,然后再试试看程序能否正常运行,很多情况下,如果这个文件不是可执行程序,对运行的影响不是很大。
简单方便的WinRAR用户身份校验
WinRAR本身除了具备CRC自动校验功能外,还为用户提供了专门的身份校验功能,可以帮助用户了解自己的压缩包是否被人修改过。
实战:制作一个“只许用不许改”的压缩包

   在“资源管理器”中选择要压缩的文件,单击鼠标右键,选择“添加到压缩文件”,打开“压缩文件名和参数”窗口,勾选“压缩选项”中的“添加用户身份校验信息”选项,单击“确定”按钮生成压缩包。

     双击打开这个压缩包,可以在地址栏中看到“用户校验信息存在”的提示,单击菜单“命令→显示信息”打开对话框,在“用户身份校验信息”栏中可以看到该压缩包的文件名、创建者以及创建日期信息(见图1),记下这些信息,尤其是“创建者”中的信息。

    现在你可以把这个压缩包提供给接收方,并同时提供用户身份校验信息。当对方打开这个压缩包时,可以打开“显示信息”对话框,并与你提供的身份校验信息进行比对,如果完全一样的话,说明压缩包没有被修改过,如果身份校验信息不存在或者有了变化,则说明压缩包已经被修改过了。
小提示
该功能需要使用注册版的WinRAR,因为身份校验信息就是根据注册用户名来生成的,一个被添加了身份校验信息的压缩包被重新修改时,将丢失身份校验信息,这就是它的校验原理

态度决定一切,技术改变生活作者:winzheng                                                                                                                                               
出处: http://cnblogs.com/winzheng                                                                                                       本文为原创作品,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。