hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Anonym
Beiträge: 22827
31. Mai 2004, 18:58
Beitrag #1 von 3
Bewertung:
(636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Per Droplet Ordner erzeugen


Hallo Hans,

ja schon wieder eine Frage
hab mich schon Stunden damit beschäftigt aus den mir bekannten Scripts ein Droplet zu erstellen, welches:
In den Ordner, den ich auf das Droplet ziehe einen Unterordner mit dem Namen "Kundendaten" erstellt.

folgendes Script funktioniert zwar, aber es wird immer der Zielordner abgefragt. (Zielordner ziehe ich ja schon aufs Droplet)
------
on run
 display dialog "Ordner auf das Icon
dieses Droplets deponieren." buttons "OK" default button 1 with icon 0
end run

on open selectFolder
 set targetFolder to (choose folder with prompt "Zielordner wählen") as string
 set folderNames to {"Kundendaten"}
 repeat with i from 1 to count of folderNames
  set folderName to item i of folderNames
  tell application "Finder" to make new folder at folder targetFolder with properties {name}
 end repeat
end open
------
Gruss willem Top
 
X
Hans Haesler  M  p
Beiträge: 5470
31. Mai 2004, 20:41
Beitrag #2 von 3
Beitrag ID: #418790
Bewertung:
(635 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Per Droplet Ordner erzeugen


Hallo Willem,

was willst Du denn noch mehr? Es funktioniert ja! ;-)

Okay … es könnte etwas direkter sein. Der Vorteil eines Droplets besteht darin, dass der Anwender Ordner oder Dateien darauf ziehen kann und nicht mehr mit einem Auswahl-Dialog genervt wird. Weil er durch das Ziehen des Objektes das Ziel schon bestimmt hat.

Deshalb muss man Dein Script leicht ändern:
---
on run
  display dialog "Ordner auf dem Icon
dieses Droplets deponieren." buttons "OK" default button 1 with icon 0
end run

on open selectFolder
  set targetFolder to item 1 of selectFolder as string
  try
    alias (targetFolder & "Kundendaten")
  on error
    try
      tell application "Finder" to make new folder at folder targetFolder with properties {name:"Kundendaten"}
    end try
  end try
end open
---
Die Variable 'selectFolder' enthält die Liste der auf dem Droplet deponierten Objekte. Wenn der Anwender schön brav nur eines darauf fallenlässt, dann ist alles okay, Weil aber mehr als ein Objekt daraufgezogen werden kann, muss man – vorbeugend – den Inhalt von 'targetFolder' auf ein Objekt beschränken. Dies gelingt mit 'item 1 of selectFolder'. Der Nachsatz 'as string' wandelt den Alias-Pfad in eine Textkette um.

Nun muss geprüft werden, ob das erste Element der Liste ein Ordner ist. Man könnte dazu den Test 'if targetFolder ends with ":"' gebrauchen (weil der Pfad eines Ordners mit einem Doppelpunkt endet). Oben wird eine andere Möglichkeit eingesetzt: Ein doppelter 'try'-Wrapper, welcher nicht so einfach zu verstehen ist.

Die Zeile 'alias (targetFolder & "Kundendaten")' prüft, ob im Zielordner schon der Ordner "Kundendaten" existiert. Wenn ja, geschieht nichts. Wenn der Ordner noch nicht vorhanden ist, dann ergibt dies einen Fehler und der 'on error'-Teil wird aufgerufen. Darin ist nochmals eine 'try / end try'-Konstruktion, damit eine Fehlermeldung verhindert wird, wenn das Objekt kein Ordner ist. Alles klar?

Hans Haesler <hsa@ringier.ch>
als Antwort auf: [#418789] Top
 
Anonym
Beiträge: 22827
1. Jun 2004, 08:01
Beitrag #3 von 3
Beitrag ID: #418791
Bewertung:
(635 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Per Droplet Ordner erzeugen


Alles klar, Läuft wie gewünscht
Zum Glück gibt es Menschen wie Dich!

Gruss willem
als Antwort auf: [#418789] Top