C# 比较两个文件
我通过将两个文件读入filestream并逐字节比较来比较它们。比较时如何跳过空白?我正在使用C#netC# 比较两个文件,c#,file,compare,whitespace,byte,C#,File,Compare,Whitespace,Byte,我通过将两个文件读入filestream并逐字节比较来比较它们。比较时如何跳过空白?我正在使用C#net 编辑:正如Eric Lippert指出的,只有当文件编码为纯7位ASCII时,这才是正确的。在任何其他编码中,它将跳过相关字节。因此,您应该考虑数据的编码。您可以发布现有代码,我们可以提供更改吗?如果您不想自己进行比较的话。您可以在windows中使用FC.exe工具,并使用/W(压缩/忽略空白)开关。要正确执行此操作,您必须知道文件的编码。它是纯7位ASCII,UTF-8,UTF-16,编
编辑:正如Eric Lippert指出的,只有当文件编码为纯7位ASCII时,这才是正确的。在任何其他编码中,它将跳过相关字节。因此,您应该考虑数据的编码。您可以发布现有代码,我们可以提供更改吗?如果您不想自己进行比较的话。您可以在windows中使用FC.exe工具,并使用/W(压缩/忽略空白)开关。要正确执行此操作,您必须知道文件的编码。它是纯7位ASCII,UTF-8,UTF-16,编码在某个代码页中,什么?我的意思是,基本上,你在这里执行的操作在逻辑上是不一致的。你说你想一个字节一个字节地进行,但接着做一个字符一个字符的特殊情况。这在逻辑上是不一致的;除7位ascii外,字节与字符不同构。你为什么不逐字比较呢?也许你可以描述一下你的目标;可能有一种更好的方法来实现它,而不是您正在尝试的方法。只有当文件的编码是纯7位ASCII时,这才是正确的。在任何其他编码中,它都会跳过相关的字节。@Eric Lippert:嗨,海报上说他在比较字节,但你是对的;他应该考虑编码。
byte b;
// ....
if (Char.IsWhiteSpace((char) b))
{
// skip...
}