- Offizieller Beitrag
Ich bin gerade dabei ein Programm zum synchronisieren von Verzeichnissen zu erstellen.
Dafür benötige ich eine Funktion zum vergleichen des Inhalts der Dateien. Wenn der Dateiname gleich ist und die Dateigröße gleich ist, kann ja immer noch der Dateiinhalt unterschiedlich sein.
Deshalb muss ich eine Checksumme für die Dateien erstellen. Nun habe ich mit _Crypt_HashFile experimentiert:
Spoiler anzeigen
#include <Crypt.au3>
_Crypt_Startup()
Global $iTimer, $sFile = @AutoItExe
$iTimer = TimerInit()
$sChecksum = _Crypt_HashFile($sFile, $CALG_MD2)
ConsoleWrite('MD2 = ' & TimerDiff($iTimer) & @CR)
$iTimer = TimerInit()
$sChecksum = _Crypt_HashFile($sFile, $CALG_MD4)
ConsoleWrite('MD4 = ' & TimerDiff($iTimer) & @CR)
$iTimer = TimerInit()
$sChecksum = _Crypt_HashFile($sFile, $CALG_MD5)
ConsoleWrite('MD5 = ' & TimerDiff($iTimer) & @CR)
$iTimer = TimerInit()
$sChecksum = _Crypt_HashFile($sFile, $CALG_SHA1)
ConsoleWrite('SHA1 = ' & TimerDiff($iTimer) & @CR)
_Crypt_Shutdown()
[/autoit]
Bei mir ist der MD4-Algorithmus am schnellsten = rund 12 ms. Das ist aber immer noch eine relativ lange Zeit für diese "kleine" Datei.
Gibt es da nicht vielleicht eine schnellere Methode? Oder muss ich damit leben?