我有一个字典,其中键是文件大小的值(以千字节为单位),以及与此大小相匹配的文件的值列表
Dictionary<long, List<FileInfo>> myDictionary=new Dictionary<long, List<FileInfo>>();
我需要字典中的每个List来检查重合是否不仅是文件的大小而且文件的内容(大小是我们的字典的键),如果它不匹配则将它们写入新的列表对于新密钥,或在同一个字典中要么是新的。 算法检查文件的内容:
public bool Comparison(FileInfo f1, FileInfo f2)
{
int file1byte;
int file2byte;
BufferedStream fs1;
BufferedStream fs2;
if (f1 == f2)
{
return true;
}
fs1 = new BufferedStream(new FileStream(f1.FullName, FileMode.Open));
fs2 = new BufferedStream(new FileStream(f2.FullName, FileMode.Open));
if (fs1.Length != fs2.Length)
{
fs1.Close();
fs2.Close();
return false;
}
do
{
file1byte = fs1.ReadByte();
file2byte = fs2.ReadByte();
}
while ((file1byte == file2byte) && (file1byte != -1));
fs1.Close();
fs2.Close();
return ((file1byte - file2byte) == 0);
}