Ich habe einen Ordner mit allerhand Textdateien drin. Der Inhalt ändert sich immer in bestimmten Abständen. ich möchte aus diesem ordner nun die beiden Dateien kopieren, die das neueste Datum haben. Das geht sicher, nur wie?
Dateien mit neuestem Datum kopieren
-
- [ gelöst ]
-
Scritch -
14. Februar 2011 um 16:13 -
Geschlossen -
Erledigt
-
-
Hallo Scritch,
die Lösung würde sicher auch andere interessieren, kannt du sie bitte eintellen,
mfg autoBert
-
Sowas in der Art hab ich mir auch mal gebastelt.
[autoit]
[/autoit][autoit][/autoit][autoit]
;ungefährer ablauf... Achtung nur pseudocode:
$anfang = _FileListToArray ; um erstmal eine liste aller Dateien zum Programmstart zuhaben
; Dann die Zeitstempel aller Dateien im Array mit einer Schleife auslesen und in ein Zeitarray $zeit speichern
while...
$zeit[$index]=FileGetTime($anfang[$index])
wend
; im anschluss die neueste Datei ermitteln:
$trefferindex = _ArrayMaxIndex($zeit)
$datei = $anfang[$trefferindex]; danach überwacht man dann in einer Schleife das Verzeichnis auf Änderungen
[/autoit]
while 1
$neu = _FileListToArray
if $neu <> $anfang then
$anfang = $neu
; --> wieder zeit array ermitteln neueste datei mit dem datum des alten treffers abgleichen, wenn wirklich neu dann funktion aufrufen die das gewünschte erledigt
else
sleep(1000) ; verzeichnis inhalt hat sich nicht geändert...
endif
wendHab jetzt keine Lust das rauszusuchen, aber so in der Art lies sich das realisieren. Wenn man auch die zweitneueste Datei will muss man wohl noch ein wenig ändern...
Vielleicht gibts aber auch eine viel einfachere Lösung? -
Zitat
Hallo Scritch,
die Lösung würde sicher auch andere interessieren, kannt du sie bitte eintellen,
mfg autoBert
Moin,
war ein Fehler, habe mich verklickt. Eine Lösung habe ich noch nicht. Werde mir das von misterspeed nachher mal anschauen. Danke schonmal dafür. -
Was auch gehen würde, und vll. einfacher wäre: Alle Dateien mit dem heutigen Datum kopieren.
Edit:
Habe da mal was gebastelt, was meinen Ansprüchen genügt:Spoiler anzeigen
[autoit]#Include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <file.au3>
#include <array.au3>DirCreate(@ScriptDir & '\' & StringFormat('%s.%s.%s', @MDAY, @MON, @YEAR))
[/autoit] [autoit][/autoit] [autoit]
$date = _DateTimeFormat(_NowCalc(), 2)
;MsgBox(1, "lala", $date)$filesarray = @ScriptDir
[/autoit] [autoit][/autoit] [autoit]
$arrayderfiles = _FileListToArray($filesarray)
;_ArrayDisplay($arrayderfiles)for $a = 1 to ubound($arrayderfiles) - 1
[/autoit]
$file = @ScriptDir & "\" & $arrayderfiles[$a]
$t = filegettime($file, 1)
$yyyymd = $t[2] & "." & $t[1] & "." & $t[0]
If $yyyymd = $date Then
filecopy($file, $date)
;MsgBox(0, "Erstelldatum von notepad.exe", $yyyymd)
EndIf
Next