如何为损坏的复制文件修复损坏的paketes?

时间:2018-04-20 12:02:38

标签: c# copy md5 crc32

问题是如何修复而不是如何复制。

因此,如果我们复制了一个文件,并且我们在复制之前和之后为该文件创建了一个HashMap(在c#中使用MD5或CRC32),这样我们就可以在复制后检查文件是否已经完全复制而没有任何损坏。 / p>

让我们假设我们在此复制文件中发现了损坏的Pakete。 问题是:除了重新复制文件之外,无论如何我们只能使用MD5或CRC32或c#中的任何其他技术修复损坏的Pakete

感谢高级,

2 个答案:

答案 0 :(得分:0)

没有。你想要的是一个Reed-Solomon代码,它是一个纠错码。根据您添加的检查信息量,它可以纠正消息中的有限数量的错误。这仅在您的错误通道可能仅引入少量错误时才有用。

Reed-Solomon代码擅长纠正长时间的错误突发,这是他们如何使CD成为可能的一部分。 Reed-Solomon代码可以纠正由于CD上的宏观划痕引起的错误突发,其中编码位是微观的。

答案 1 :(得分:0)

正如Mark Adler所说,最好使用Reed-Solomon来修复腐败的Pakets。 此外,系统方法File.Copy()已经在检查复制的Pakets中是否存在任何损坏。