我正在从一个文件写入另一个文件,我在测试中创建了一个 Assert 语句来检查新文件是否与原始文件相同,但不确定最好的方法是什么。我尝试了 Assert.Equals
但它返回失败,即使我实际检查了两个文件并且它们完全相同。
Assert.IsTrue(File.Equals(downloadfile, created), "Files do not match");
最佳答案
创建文件的 MD5 或 SHA 哈希值,并进行比较。
public string GetFileHash(string filename)
{
var hash = new SHA1Managed();
var clearBytes = File.ReadAllBytes(filename);
var hashedBytes = hash.ComputeHash(clearBytes);
return ConvertBytesToHex(hashedBytes);
}
public string ConvertBytesToHex(byte[] bytes)
{
var sb = new StringBuilder();
for(var i=0; i<bytes.Length; i++)
{
sb.Append(bytes[i].ToString("x"));
}
return sb.ToString();
}
[Test]
public void CompareTwoFiles()
{
const string originalFile = @"path_to_file";
const string copiedFile = @"path_to_file";
var originalHash = GetFileHash(originalFile);
var copiedHash = GetFileHash(copiedFile);
Assert.AreEqual(copiedHash, originalHash);
}
关于c# - 比较两个文件是否相等的断言语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17816335/