我在寻找一种方式使用C#来检测文件损坏。这也许是过于空泛,但我不是在寻找特定类型的腐败,只是想知道如果有一种方法来检测文件中已普遍被损坏。任何人都知道这是可能的,如果是你怎么会做它在C#中?感谢。

有帮助吗?

解决方案

如果您知道是什么文件应该看起来像,你可以对一个已知良好的MD5哈希值进行比较。

除此之外,如果你正在寻找腐败的特定模式。例如,字节的顺序应该是在某个位置,但它被搞砸了,这可能是一个标志。这一切都取决于具体是什么,你正在寻找。

其他提示

的常用方法是使用类似 CRC 。你比较与CRC包含的文件(通常附加到文件)中的CRC从有效载荷计算。如果它们不匹配,你知道数据被损坏。

有没有API,它会允许您检测文件损坏。你必须做你自己,你会怎么做entierly取决于你的需要。

文件系统一般不这样做。据我所知,有三个原因。

首先,任何类型的防腐败算法将涉及某种类型的校验和,其是稍贵的计算。

第二,有腐败的至少两个原因。当驱动器扇区变坏的文件可能被损坏,但它们也可以通过一个应用程序损坏。当然,当应用程序修改该文件并保存它的新版本,它总是会说,新版本是伟大的,即使它取代所有其他的字与“便便”。

三,你能做些什么比当一个文件被破坏抛出一个异常其他?如果你checksuming的文件,然后你有一个更清洁的方式来知道该文件的破碎,但最终它仍然坏了,并没有多少,你可以暂停除做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top