2012-06-29 36 views
12

Ich versuche, einen Ordner im Finder mit AppleScript zu öffnen. Das Folgende ist mein Code. Ich möchte den Ordner WorkSpace im Finder öffnen, aber es öffnet den übergeordneten Ordner /Volumes/MyMacDrive/Mani und markiert den WorkSpace Ordner. Ich möchte den Inhalt von WorkSpace Ordner, aber alles, was ich bekomme, ist der Inhalt des übergeordneten Ordners. Was fehlt mir hier ..?Applescript: Öffnen Sie einen Ordner im Finder

property the_path : "/Volumes/MyMacDrive/Mani/WorkSpace/" 
set the_folder to (POSIX file the_path) as alias 
tell application "Finder" 
    activate 
    if window 1 exists then 
     set target of window 1 to the_folder 
    else 
     reveal the_folder 
    end if 
end tell 
+2

Verwenden Sie die 'Finder window' haben class anstelle von 'window' um keinen Fehler zu haben, wenn eines dieser Fenster geöffnet ist (Informationsfenster, Einstellungsfenster, Ausschnittfenster und Ansichtsoptionenfenster). ->' wenn das Finder Fenster 1 existiert '. Der Befehl reveal: Bringe die angegebenen Objekte in ** view **, benutze den 'open' Befehl wie in ** adayzdone ** 's Antwort. – jackjr300

Antwort

18

So weit ich gesucht habe, scheint es keine Möglichkeit zu geben, den Ordner zu öffnen, anstatt nur den Ordner in AppleScript hervorzuheben. Also ich habe verwendet:

do shell script "open /Volumes/MyMacDrive/Mani/WorkSpace/" 

Es funktionierte gut für mich, aber bitte aktualisieren Sie mich, wenn ich falsch liege.

+0

Es gibt keinen Unterschied zwischen Ihrem Befehl 'do shell script' und dem Befehl' open' (not ** reveal **) im Finder, er funktioniert für alle. Aber vielleicht ist das eine Ausnahme von der Regel. – jackjr300

+2

Der Vollständigkeit halber möchte ich hinzufügen, dass, wenn Ihr Pfad ein Parameter ist, Sie 'do shell script" öffnen "& quote & pathParameter & quote' verwenden können und es Dinge wie Leerzeichen im Pfad behandelt. –

3

Versuchen:

if front Finder window exists then 
    set target of front Finder window to the_folder 
else 
    open the_folder 
end if 

Edited jackjr300 die Korrektur zu integrieren. Finder-Fenster ist die richtige Klasse zu verwenden.

+0

Während dies korrekt ist, habe ich es bearbeitet, weil es ohne das 'end if' nicht funktioniert und du einen Fehler bekommst, dass' the_folder' nicht definiert ist. –

11

Es ist eigentlich einfacher als es scheint:

tell application "Finder" to open ("/Volumes/MyMacDrive/Mani/WorkSpace/" as POSIX file) 

oder verwenden Doppelpunkte ein Apple Weg zu geben:

tell application "Finder" to open "MyMacDrive:Mani:WorkSpace" 

mit, dass Sie ein offenes Fenster

+1

Das hat für mich nicht funktioniert – Besi

+0

Nun, ich habe die zweite und es hat für mich funktioniert (Mac OS X 10.10.3, AppleScript 2.4). Vielen Dank! – RoberRM

Verwandte Themen