如何比较文件头以外的文件?

时间:2015-09-26 15:53:17

标签: c# windows file io header

我知道我可以MD5一个完整的文件,这是我想做的事情。

我想获取标题和实际文件内容。

我知道每个文件都有一个标题,然后有内容。我想比较两个文件的实际内容,以确定内容是否相同,为此我将在内容上使用简单的md5。

我的问题是如何从内容中分离标题,以便我可以进行计算? - 为了使这更清楚,我需要知道的是抵消;它们对于所有文件是否相同或不同,如果不同,我如何找到详细信息以便我可以完成此任务。 (我知道漱口但无法找到它。)

using (var md5 = MD5.Create())
{
    using (var stream = File.OpenRead(filename))
    {
        return md5.ComputeHash(SplitContentFromHeader(stream));
    }
}


SplitContentFromHeader(stream)
{
.. do the thing and return the shortened stream 
}

1 个答案:

答案 0 :(得分:0)

我认为您想要使用.Seek.Read方法。请参阅此处的文档:https://msdn.microsoft.com/en-us/library/system.io.filestream.seek(v=vs.110).aspx和此处https://msdn.microsoft.com/en-us/library/system.io.stream.read(v=vs.110).aspx

在这里复制类似的问题Read file from position尝试这样的事情:

 using (FileStream fs = new FileStream(@"file.txt", FileMode.Open, FileAccess.Read))
    {
        fs.Seek(100, SeekOrigin.Begin);

        byte[] b = new byte[fs.Length - 100];
        fs.Read(b, 0, (int)(fs.Length - 100));

        string s = System.Text.Encoding.UTF8.GetString(b);
    }