Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03225.jsonl.gz/2836

Effizient prüfen, ob ein Ordner vorhanden ist
Eine Erklärung der "Minimalsyntax", welche Goar im Thema "Script soll Speicherung einer ps-Datei abwarten" angesprochen hat.
In vielen Scripts wird der Finder eingesetzt, um zu prüfen, ob eine Datei oder ein Ordner schon existiert. Nun ist aber bekannt, dass der Finder nicht immer blitzartig reagiert, vor allem wenn er alle Hände voll zu tun hat.
Deshalb ist es besser, zuerst mit 'as alias' nachzufragen – ohne den Finder zu bemühen. Wenn man den Befehl in einen try-wrapper setzt, dann wird eine Fehlermeldung generiert, wenn das Objekt nicht existiert. Und dann erst kommt im 'on error'-Teil der Finder zum Zuge. Und zwar möglichst mit einem Befehl auf einer Zeile. Dadurch wird der Einsatz des Finders spürbar effizienter.
Den folgenden Handler 'makeFolder()' habe ich in einem grossen Script eingesetzt. Darin gibt es sieben Stellen, an welchen ein Zielordner gebraucht wird, immer mit anderem Namen und anderem Pfad. Vor jedem Aufruf werden die Variablen vorbereitet und der angesprochene Handler ist immer derselbe.
Hier habe ich den Pfad und die Namen vereinfacht:
---
set folPath to (path to startup disk as string)
set folName to "testFolder"
set targetFolder to ((path to startup disk as string) & "testFolder")
makeFolder(targetFolder, folPath, folName)
on makeFolder(targetFolder, folPath, folName)
try
targetFolder as alias
on error
tell application "Finder" to make new folder at folder folPath with properties {name:folName}
end try
end makeFolder
---
Hans Haesler, <email-pii>