Eingabe: zwei Dateien Ausgabe/Return: Dateiname neueste von Beiden

  • Gibt die neuere der beiden dateien zurück....

    ich habs in meinem programm gebraucht, weil ich keine udf gefunden habe ... wers auch braucht, bitte sehr ;)

    [autoit]

    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, "Ergebnis", "Neuer:" & _file_time_compare("update.sha", "status.tmp"))

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _file_time_compare($file1,$file2)
    $1 = FileExists($file1)
    $2 = FileExists($file2)
    if $1+$2 = 0 Then Return ""
    if $1 = 0 Then Return $file2
    if $2 = 0 Then Return $file1
    $filetime1array = FileGetTime($file1)
    $filetime1 = StringReplace(_ArrayToString($filetime1array), "|", "")
    $filetime2array = FileGetTime($file2)
    $filetime2 = StringReplace(_ArrayToString($filetime2array), "|", "")
    $r = $filetime1 - $filetime2
    if $r >= 0 Then Return $file1
    if $r < 0 Then Return $file2
    EndFunc

    [/autoit]
  • Praktische Funktion, du kannst sie aber noch etwas verbessern. FileGetTime besitzt einen zweiten Parameter, der dein ArrayToString und StringReplace überflüssig macht. Den Vergleich könntest du auch per "StringCompare($time1, $time2) >= 0" durchführen