Ich möchte deine Aufmerksamkeit auf
xxHash richten, das ich mittlerweile statt MD5 verwende. Die Seite von
Cyan4973 auf Github ist interessant, ich habe den Wrapper von
YWtheGod (auch auf Github) genommen.
Ich fand es auch günstig, zunächst nur den Anfang zweier Dateien zu vergleichen, insbesondere bei sehr großen Dateien. Da unter Windows immer mindestens 256 KB eingelesen werden, lese und vergleiche ich zunächst einmal diese ersten 256 KB, was schon einmal so gut wie alle
nicht gleichen Dateien aussieben sollte.
Bei mir sind Hardlinks ein Thema, weswegen ich auch mittels
GetFileInformationByHandle
die FileID ermittle und vergleiche.
Mir haben auch die Hinweise von
Uwe Raabe und
Andreas Hausladen sehr geholfen.