2012-06-29 25 views
12

Estoy intentando abrir una carpeta en Finder usando AppleScript. El siguiente es mi código. Quiero que se abra la carpeta WorkSpace en el Finder, pero abre la carpeta principal /Volumes/MyMacDrive/Mani y resalta la carpeta WorkSpace. Quiero los contenidos de la carpeta WorkSpace, pero todo lo que obtengo es el Contenido de la carpeta principal. Que me estoy perdiendo aqui ..?Applescript: abra una carpeta en 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 del 'window' Buscador clase en lugar de 'ventana' para no tener un error si una de estas ventanas está abierta (ventana de información, ventana de preferencias, ventana de recorte y ventana de opciones de vista) .-->' si la ventana del Finder 1 existe entonces'. El comando de revelar: Trae los objetos especificados a ** ver **, utiliza el comando 'abrir' como en ** adayzdone ** 's respuesta. – jackjr300

Respuesta

18

Por lo que he buscado, parece que no hay forma de abrir la carpeta en lugar de simplemente resaltar la carpeta en AppleScript. Así que he usado:

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

Me funcionó bien, pero por favor actualícenme si me equivoco.

+0

No hay diferencia entre el comando 'do shell script' y el comando' open' (not ** reveal **) en Finder, funciona para todos. Pero, tal vez esa sea una excepción a la regla. – jackjr300

+2

Para completar, me gustaría agregar que si su ruta es un parámetro, puede usar 'do script shell" open "& quote & pathParameter & quote' y maneja cosas como espacios en la ruta. –

3

Probar:

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

Editado para incorporar la corrección de jackjr300. La ventana del Finder es la clase correcta para usar.

+0

Si bien esto es correcto, lo edité porque no funcionará sin el 'end if' y obtendrá un error que' the_folder' no está definido. –

11

En realidad es más simple de lo que parece:

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

o usan dos puntos para dar una ruta de AppleScript:

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

con que tiene una ventana abierta

+1

Esto no funcionó para mí – Besi

+0

Bueno, he usado el segundo y me funcionó (Mac OS X 10.10.3, AppleScript 2.4). ¡Gracias! – RoberRM

Cuestiones relacionadas