Hallo Andrea,
wenn ich Deine Erklärungen (per private Mails) richtig verstanden habe, dann sind nicht "nur" – wie
ursprünglich gepostet – PDF-Dateien in ihre Herkunftsordner zurückzuverschieben, sondern auch Bild-
und Schriftdateien … Ein schönes Schlamassel – könnte man meinen.
Aber da sind zum Glück die ".jdf"-Dateien. Das sind XML-Files, in welchen für jede zu verschiebende
Datei der ursprüngliche Pfad gespeichert ist. Der Inhalt dieser Job-Ticket-Dateien ist aber leider
nicht nur eine einzelne Zeile, sondern besteht aus deren 32 …
Mit einem XML-Utility könnte der Pfad leicht herausgelesen werden. Solch ein Tool habe ich aber nicht
zur Hand. Deshalb behelfe ich mir mit der Scripting Addition "Satimage.osax", mit welcher der String,
welcher uns interessiert, auch ausgezogen und zurechtgestutzt werden kann.
Das Droplet akzeptiert einen oder mehrere Ordner. Bei jedem Objekt, welches auf sein Icon fallengelassen
wurde, wird geprüft, ob der Pfad mit einem Doppelpunkt endet. Jeder Ordner enthält nur zwei Dateien.
Die zu verschiebende Datei und die Job-Ticket-Datei, welche immer "ticket.jdf" heisst. Deshalb ist die
Zuweisung der Namen einfach. Der Pfad zum JDF wird so bestimmt:
---
[size 3][nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]set[/blue] [green]textFilePath[/green] [blue]to[/blue] [green]objectPath[/green] & "ticket.jdf"
[/size]---
Dieser Pfad wird zum Handler 'getPdfPath()' geschickt, die Datei wird in eine Variable gelesen und dank
RegEx- und Suchen-Ersetzen-Befehlen der Pfad der Herkunftsordner herausgepickt. Wenn dieser Pfad nicht
als leerer String zurückkommt, wird eine Liste des Ordnerinhalts erstellt: 'without invisibles', also
ohne eventuelle unsichtbare Dateien (wie "Icon" oder ".DS_Store").
Der Name der Bild- oder PDF- oder Was-auch-immer-Datei wird so in die Variable 'fileName' gesetzt ...
---
[size 3][nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]if[/blue] [blue]not[/blue] ([blue]item[/blue] [green]i[/green] [blue]of[/blue] [green]fileList[/green] [blue]ends with[/blue] ".jdf") [blue]then[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]fileName[/green] [blue]to[/blue] [blue]item[/blue] [green]i[/green] [blue]of[/blue] [green]fileList[/green]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]end[/blue] [blue]if[/blue]
[/size]---
... mit anderen Worten: Die erste Datei, deren Name nicht mit ".jdf" endet. Wenn dies Erfolg hat, dann
werden die Pfade der beiden Ordner und der Dateiname dem Handler 'movePDF()' übergeben, in welchem man
dem "Finder" sagt, er solle versuchen, die Datei in den Ursprungsordner zu verschieben. Wenn diese Aktion
gelingt, wird der gedroppte Ordner mit der Etikettenfarbe 6 eingefärbt, damit man eine optische Kontrolle
darüber hat, welche Ordner schon behandelt worden sind.
---
[size 3][blue]on[/blue] [blue]open[/blue] [green]droppedObjects[/green]
[nbsp] [nbsp][blue]repeat[/blue] [blue]with[/blue] [green]anObject[/green] [blue]in[/blue] [green]droppedObjects[/green]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]objectPath[/green] [blue]to[/blue] [green]anObject[/green] [blue]as[/blue] [blue]string[/blue]
[nbsp] [nbsp] [nbsp] [blue]if[/blue] [green]objectPath[/green] [blue]ends with[/blue] ":" [blue]then[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]set[/blue] [green]textFilePath[/green] [blue]to[/blue] [green]objectPath[/green] & "ticket.jdf"
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]set[/blue] [green]origFolderPath[/green] [blue]to[/blue] [green]getPdfPath[/green]([green]textFilePath[/green])
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]if[/blue] [green]origFolderPath[/green] [blue]is[/blue] [blue]not[/blue] "" [blue]then[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]fileList[/green] [blue]to[/blue] [blue]list folder[/blue] [green]objectPath[/green] [blue]without[/blue] [blue]invisibles[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]fileName[/green] [blue]to[/blue] ""
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]repeat[/blue] [blue]with[/blue] [green]i[/green] [blue]from[/blue] 1 [blue]to[/blue] [blue]count[/blue] [green]fileList[/green]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]if[/blue] [blue]not[/blue] ([blue]item[/blue] [green]i[/green] [blue]of[/blue] [green]fileList[/green] [blue]ends with[/blue] ".jdf") [blue]then[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]fileName[/green] [blue]to[/blue] [blue]item[/blue] [green]i[/green] [blue]of[/blue] [green]fileList[/green]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]end[/blue] [blue]if[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]end[/blue] [blue]repeat[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]if[/blue] [green]fileName[/green] [blue]is[/blue] [blue]not[/blue] "" [blue]then[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp][green]movePDF[/green]([green]objectPath[/green], [green]fileName[/green], [green]origFolderPath[/green])
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [nbsp] [blue]end[/blue] [blue]if[/blue]
[nbsp] [nbsp] [nbsp] [nbsp] [nbsp][blue]end[/blue] [blue]if[/blue]
[nbsp] [nbsp] [nbsp] [blue]end[/blue] [blue]if[/blue]
[nbsp] [nbsp][blue]end[/blue] [blue]repeat[/blue]
[blue]end[/blue] [blue]open[/blue]
[blue]on[/blue] [green]getPdfPath[/green]([green]textFilePath[/green])
[nbsp] [nbsp][blue]set[/blue] [green]origFolderPath[/green] [blue]to[/blue] ""
[nbsp] [nbsp][blue]try[/blue]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]aString[/green] [blue]to[/blue] [blue]read[/blue] [blue]file[/blue] [green]textFilePath[/green]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]aString[/green] [blue]to[/blue] [blue]change[/blue] ([blue]ASCII character[/blue] 13) [blue]into[/blue] "" [blue]in[/blue] [green]aString[/green]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]aString[/green] [blue]to[/blue] [blue]change[/blue] ([blue]ASCII character[/blue] 9) [blue]into[/blue] "" [blue]in[/blue] [green]aString[/green]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]filePath[/green] [blue]to[/blue] ([blue]find text[/blue] "[ -z]+" [blue]in[/blue] [green]aString[/green] [blue]with[/blue] [blue]all occurrences[/blue], [blue]string result[/blue] [blue]and[/blue] [blue]regexp[/blue]) [blue]as[/blue] [blue]string[/blue]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]filePath[/green] [blue]to[/blue] [blue]change[/blue] "(file:///)([!-z]+)()" [blue]into[/blue] "\\2" [blue]in[/blue] [green]filePath[/green] [blue]with[/blue] [blue]regexp[/blue]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]filePath[/green] [blue]to[/blue] [blue]change[/blue] "/" [blue]into[/blue] ":" [blue]in[/blue] [green]filePath[/green]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [blue]AppleScript[/blue]'s [blue]text item delimiters[/blue] [blue]to[/blue] {":"}
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [green]origFolderPath[/green] [blue]to[/blue] [blue]text items[/blue] 1 [blue]thru[/blue] -2 [blue]of[/blue] [green]filePath[/green] [blue]as[/blue] [blue]string[/blue]
[nbsp] [nbsp] [nbsp] [blue]set[/blue] [blue]AppleScript[/blue]'s [blue]text item delimiters[/blue] [blue]to[/blue] {""}
[nbsp] [nbsp][blue]end[/blue] [blue]try[/blue]
[nbsp] [nbsp][blue]return[/blue] [green]origFolderPath[/green]
[blue]end[/blue] [green]getPdfPath[/green]
[blue]on[/blue] [green]movePDF[/green]([green]objectPath[/green], [green]fileName[/green], [green]origFolderPath[/green])
[nbsp] [nbsp][blue]try[/blue]
[nbsp] [nbsp] [nbsp] [blue]tell[/blue] [blue]application[/blue] "Finder" [blue]to[/blue] [blue]move[/blue] [blue]file[/blue] [green]fileName[/green] [blue]of[/blue] [blue]folder[/blue] [green]objectPath[/green] [blue]to[/blue] [blue]folder[/blue] [green]origFolderPath[/green] [blue]with[/blue] [blue]replacing[/blue]
[nbsp] [nbsp] [nbsp] [blue]tell[/blue] [blue]application[/blue] "Finder" [blue]to[/blue] [blue]set[/blue] [blue]label index[/blue] [blue]of[/blue] [blue]folder[/blue] [green]objectPath[/green] [blue]to[/blue] 6
[nbsp] [nbsp][blue]end[/blue] [blue]try[/blue]
[blue]end[/blue] [green]movePDF[/green][/size]
---
Ich werde Dir das Droplet per Mail zustellen.
Gruss, Hans