如何比较不包含文件头的文件?

本文关键字:文件 包含 何比较 比较 | 更新日期: 2023-09-27 18:14:43

我知道我可以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 
}

如何比较不包含文件头的文件?

我认为您想使用.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

从位置读取文件试试这样做:

 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);
    }