Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较两个文件_C#_File_Compare_Whitespace_Byte - Fatal编程技术网

C# 比较两个文件

C# 比较两个文件,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,编

我通过将两个文件读入filestream并逐字节比较来比较它们。比较时如何跳过空白?我正在使用C#net


编辑:正如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...
}