2012-06-29 8 views
12

Sto cercando di aprire una cartella in Finder utilizzando AppleScript. Quello che segue è il mio codice. Desidero aprire la cartella WorkSpace nel Finder, ma apre la cartella principale /Volumes/MyMacDrive/Mani ed evidenzia la cartella WorkSpace. Voglio il contenuto della cartella WorkSpace, ma tutto quello che sto ottenendo è il contenuto della cartella principale. Cosa mi manca qui ..?Applescript: apre una cartella nel 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

Uso della finestra ' 'Finder class invece di 'window' per non avere un errore se una di queste finestre è aperta (finestra delle informazioni, finestra delle preferenze, finestra di ritaglio e finestra delle opzioni di visualizzazione) .-->' se la finestra Finder 1 esiste allora'. Il comando di rivelazione: porta gli oggetti specificati in ** view **, usa il comando 'open' come nella risposta di ** adayzdone **. – jackjr300

risposta

18

Per quanto ho cercato, sembra che non ci sia modo di aprire la cartella anziché evidenziare semplicemente la cartella in AppleScript. Così ho usato:

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

Ha funzionato bene per me, ma vi prego di aggiornare se sbaglio.

+0

Non c'è differenza tra il comando 'do script di shell' e il comando' open' (not ** reveal **) nel Finder, funziona per tutti. Ma forse questa è un'eccezione alla regola. – jackjr300

+2

Per completezza, vorrei aggiungere che se il tuo percorso è un parametro, puoi usare 'script do shell 'aperto' & quote & pathParameter & quote' e gestisce cose come spazi nel percorso. –

3

Prova:

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

A cura di incorporare la correzione di jackjr300. La finestra del Finder è la classe corretta da usare.

+0

Anche se è corretto, l'ho modificato perché non funzionerà senza 'end if' e si otterrà un errore che' the_folder' non è definito. –

11

in realtà è più semplice di quanto sembri:

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

o utilizzare i due punti per dare un percorso AppleScript:

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

con che si dispone di una finestra aperta

+1

Questo non ha funzionato per me – Besi

+0

Bene, ho usato il secondo e ha funzionato per me (Mac OS X 10.10.3, AppleScript 2.4). Grazie! – RoberRM