影音文件出现循环冗余检查的解决方案
问题描述:
我想将笔记本上的一个电影复制出来,但是复制到某一进度时,就会弹出一错误提示窗口“无法复制:数据错误(循环冗余检查)”。还不忍心就这样删除了,郁闷之极。后来经过确认,是笔记本硬盘问题。
问题分析:
循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。若CRC校验不通过,系统重复向硬盘复制数据,陷入死循环,导致复制过程无法完成。
解决办法:
注意到在上述过程中实际已有一部分数据复制到硬盘,只是碰到某些数据CRC校验不通过时,Windows的复制命令无法跳过这些数据继续执行。而当操作无法完成后,系统会把已经复制到硬盘上的数据删除,这样导致复制完全失败。如果在复制时能跳过错误数据, 这个问题就能得到解决。我们从网上下载文件时,较常用的下载工具是FlashGet。FlashGet可以把一个文件分成几部分同时下载,也可以同时进行多个下载进程。
操作步骤:
首先,我们通过IIS(Internet信息服务)建立一个本地站点。如果还没有安装这个组件,需要在“控制面板→添加/删除程序→添加/删除Windows组件”中,点击组件,选择IIS,点“下一步”,插入安装光盘即可完成安装。
接着,创建一个虚拟目录,地址对应于你的影音文件所在目录。以Windows 2000的IIS5.0为例,创建虚拟目录的步骤如下:(实例见附件)
1. 在“开始菜单→程序→管理工具”中启动IIS;
2. 在“默认Web站点”上点右键,选择“新建→虚拟目录”;
3. 输入目录名称,假定名称为YYFiles;
4. 输入目录路径(路径应为你的影音文件所在目录),其余无须更改,一直“下一步”就可以完成了。
然后,启动FlashGet,新建一下载任务,在网址栏中输入“
http://localhost/YYFiles/借刀杀人.avi”。
这样就可以开始多线程下载了,当其中一个进程进行到一定进度时碰上错误数据,速度逐渐降为零,但其他几部分仍照常进行。而当其余几部分完成后,又会把剩余的部分分成几部分来下载。这样除了错误数据,其余均被下载到硬盘。
最后,到下载目录把文件“借刀杀人.avi.jc!”的名称改为“借刀杀人.avi”,复制过程就完成了。这样做虽然有些复杂,但是却保住了我的影音文件,不需要重新下载。建议对于影音文件可以采用上述的处理方式,对于一些重要文件,或者软件不要采用这种 方式。