Hallo zusammen,
ich habe ein Problem bei der Ausführung eines Applescripts:
eine Script soll einen Ordner überwachen und alle 60 Sekunden nachschauen, ob in diesem Ordner Dateien zur Weiterverarbeitung hinterlegt wurden (HotFolder) und die Weiterverarbeitung starten.
Nun kann es aber sein, dass genau innerhalb dieses 60 Sekunden-Intervalls zwar Dateien in diesen Ordner kopiert werden, diese aber (da Netzwerk => langsam) bei Start des Scripts (über den IDLE-Befehl) noch nicht vollständig kopiert wurden, was zum Abbruch bzw. Fehlermeldung des Scripts führt.
Meine Ansatz war nun, nach Start der Idle-Schleife aber vor der weiteren Ausführung des Scripts die Dateigröße innerhalb eines z.B. 5-Sekunden-Intervalls zweimal abzufragen, und diese zu vergleichen.
Ändert sich die Dateigröße => Abbruch bis zum nächsten Aufruf der IDLE-Schleife.
Ändert sie sich nicht => Ausführen der weiteren Schritte.
Leider habe ich zu wenig Ahnung von AppleScript, um das zu realisieren.
Kann mir jemand einen Tipp geben? Ich habe zwar den Befehl FILE SIZE gefunden, aber keine Ahnung, wie man Ihn entsprechen einbauen, bzw. vergleichen kann (Wenn es denn überhaupt der richtige Befehl ist)
Hier mein Script-Snippet
--------------------------
on idle
tell application "Finder"
set dateiliste to every file of Ordner
end tell
if length of dateiliste > 0 then
repeat with i from 1 to length of dateiliste
-- bevor DoDatei aufgerufen wird, müßte hier im Zweifelsfall abgebrochen werden...
DoDatei(item i of dateiliste)
tell application "Finder"
move item i of dateiliste to ZielOrdner
end tell
end repeat
end if
return 60 -- alle 60 Sekunden aufrufen
end idle
--------------------------------------
Danke für jede Hilfe.
David Bender