Le seul moyen de déterminer à 100 % si deux fichiers sont égaux est de faire une comparaison binaire des deux.
Si vous pouvez vivre avec le risque de faux positifs (c'est-à-dire deux fichiers qui ne sont pas identiques à 100 % mais que votre code indique qu'ils le sont), alors les algorithmes de résumé et de somme de contrôle peuvent être utilisés pour réduire le travail, en particulier si le les fichiers résident sur deux machines différentes avec une bande passante moins qu'optimale, de sorte qu'une comparaison binaire est impossible.
Les algorithmes de résumé et de somme de contrôle ont tous des chances de faux positifs, mais la chance exacte varie selon l'algorithme. La règle générale est que plus il est crypté et plus il produit de bits, moins il y a de risque de faux positif.
Même l'algorithme CRC-32 est assez bon à utiliser et il devrait être facile de trouver des exemples de code sur Internet qui l'implémentent.
Si vous ne faites qu'une comparaison de taille/horodatage, je suis désolé de dire que cela est facile à contourner et ne vous donnera pas vraiment la certitude que les fichiers sont identiques ou différents.
Cela dépend cependant, si vous savez que dans votre monde, les horodatages sont conservés et ne changent que lorsque le fichier est modifié, alors vous pouvez l'utiliser, sinon il n'y a aucune garantie.