ドライブ全体で特定のファイルを検索するプログラムに取り組んでいます。現時点では、既知のファイルの MD5 ハッシュを計算し、すべてのファイルを再帰的にスキャンして、一致するファイルを探しています。
唯一の問題は、大きなファイルでは MD5 が非常に遅いことです。誤検知の可能性を非常に低く保ちながら使用できる、より高速な代替手段はありますか?
すべてのコードは C# です。
ありがとうございました。
アップデート
MD5 でさえかなり高速であり、ディスク I/O が制限要因になるはずだと読みました。そのため、私のコードが最適ではない可能性があると私は信じています。このアプローチに問題はありますか?
MD5 md5 = MD5.Create();
StringBuilder sb = new StringBuilder();
try
{
using (FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read))
{
foreach (byte b in md5.ComputeHash(fs))
sb.Append(b.ToString("X2"));
}
return sb.ToString();
}
catch (Exception)
{
return "";
}