Hallo truni,
eine Ordneraktion wird z.B. ausgelöst, wenn Objekte in einen Ordner kopiert werden. Dann werden die Befehle, welche im Script definiert sind, ausgeführt. Wenn eine Datei in einem per Ordneraktion überwachten Ordner erzeugt wird, dann hat man das Problem zu lösen, dass die Verschiebung erst vorgenommen wird, wenn die Datei komplett ist.
Eine Möglichkeit ist, die Grösse der Datei zu überwachen und wenn sie nicht mehr zunimmt, den Befehl zum Verschieben aufzurufen. Ein anderer Ansatz: Den 'busy status' prüfen und die Datei erst verschieben wenn dieser als 'false' zurückgegeben wird. Aber wenn ich mich richtig erinnere, dann sind beide Lösungen als unzuverlässig gemeldet worden.
Deshalb würde ich fürs erste auf eine Überwachung verzichten und sofort dem Finder den Befehl zum Verschieben geben:
---
global targetFolder
on adding folder items to this_folder after receiving these_items
getPath()
try
targetFolder as alias
on error
set targetFolder to (choose folder with prompt "Den Zielordner auswählen") as string
writePath()
end try
repeat with aFile in these_items
try
tell application "Finder" to move aFile to folder targetFolder with replacing
end try
exit repeat
end repeat
end adding folder items to
on getPath()
try
set targetFolder to read file ((path to "cusr" as string) & "Librarys:" & "zielordnerpfad.txt")
on error
set targetFolder to (choose folder with prompt "Den Zielordner auswählen") as string
writePath()
end try
end getPath
on writePath()
set filePath to ((path to "cusr" as string) & "Librarys:" & "zielordnerpfad.txt")
try
open for access file filePath with write permission
set eof of file filePath to 0
write targetFolder to file filePath
close access file filePath
on error
try
close access file filePath
end try
end try
end writePath
---
Die Handler 'getPath()' und 'writePath()' werden gebraucht, um den Pfad zum Zielordner zu speichern. Unter Mac OS X muss es so umständlich vorgenommen werden, weil der Wert von 'property'-Variablen nicht mehr gespeichert werden. Der Zielordners muss nur beim ersten Gebrauch ausgewählt werden. Nachher ist der Pfad in einer Datei im Ordner "Preferences" der Bibliothek des aktuellen Benutzers gespeichert. Wenn der Zielordner gewechselt werden soll, dann kann man den bisherigen verschieben oder umbenennen.
Falls Du Probleme mit dem Zuweisen dieser Ordneraktion haben solltest, dann komme bitte zurück.
Hans Haesler <hsa@ringer.ch>
als Antwort auf: [#418847]