如何比较不包含文件头的文件?
本文关键字:文件 包含 何比较 比较 | 更新日期: 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);
}