5 votos

AppleScript: ¿Cómo crear una nueva ventana del Finder para una carpeta que ya está abierta?

El problema, en el exterior de AppleScript:

Para presenciar el problema 1 haz lo siguiente:

  • Haga doble clic en una carpeta que exista en el Escritorio. Al hacerlo, se abrirá esta carpeta en Finder.app.

  • Vuelva al Escritorio y haga doble clic de nuevo en esa misma carpeta.

  • En lugar de un segundo que se está creando, el creado previamente se pondrá en primer plano.


Una solución, en el exterior de AppleScript:

Entonces, ¿qué haces si quieres dos ¿Finder Windows de la misma carpeta?

Existe un kluge:

Crear una nueva ventana del Finder abriendo cualquier otra carpeta. Desde esta nueva ventana, ahora si navega a la carpeta deseada, entonces cambiará exitosamente esta ventana a la carpeta deseada, y tendrá dos Windows de esta carpeta.

Para navegar a la carpeta deseada dentro de una nueva ventana del Finder, cualquier funcionará:

  • Haga clic en la carpeta, si está marcada en el barra lateral (si está activado, situado a la izquierda de la ventana).

  • Haga clic en la carpeta, si es que existe en el barra de ruta (si está activado, se encuentra en la parte inferior de la ventana).

  • Utilice la ventana incorporada barra de búsqueda .

  • O, simplemente, navegue hasta la carpeta manualmente.


El problema, en AppleScript:

El siguiente código AppleScript abrirá una carpeta en una nueva ventana del Finder:

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"

tell application "Finder"
    open targetFolder
    activate
end tell

De la misma manera que Finder se comporta de forma no programada (tal y como se ha definido anteriormente), si se ejecuta este código por segunda vez (sin cerrar la ventana de Finder previamente creada), la ventana previamente creada pasará a primer plano.


La solución deseada de AppleScript:

Este es el comportamiento deseado:

  • Si targetFolder ya existe en cualquier ventana abierta del Finder (incluyendo cualquier ventana minimizada del Finder), me gustaría que el AppleScript creara un nueva ventana para el mismo targetFolder (es decir, una ventana duplicada).

Lo ideal sería que se creara la ventana duplicada, sin tener que recurrir al "truco" que he delineado anteriormente (es decir, abrir un otros antes de abrir la carpeta deseada). Sin embargo, entenderé si esto no es posible (es decir, si el método programático debe replicar el método manual).


<strong>1. </strong>Entiendo que este comportamiento no es de ninguna manera un error o un problema "real". Apple programó claramente esta acción de forma deliberada; probablemente determinaron que la mayoría de la gente no necesita ni quiere ventanas redundantes en el Finder.


OS X El Capitan, versión 10.11.6.


5voto

S.Doe_Dude Puntos 46

Forma sencilla de hacer una nueva ventana del Finder en el escritorio.

set myTarget to ((path to desktop) as text)

tell application "Finder" to make new Finder window to folder myTarget

Desde https://macscripter.net/viewtopic.php?id=36300

2voto

unlocked2412 Puntos 81

Creo que este código hace lo que quieres.

Código:

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"

tell application "Finder"
    set finderFolder to item targetFolder
    set lstTargets to target of every Finder window
    if {finderFolder} is in lstTargets then
        set target of (make new Finder window) to targetFolder
    end if
end tell

0 votos

Esta solución hace exactamente lo que deseo. Es mi solución ideal; el script abre la carpeta sin tener que abrir primero otra carpeta. También preserva mi preferencia por el Finder "Ver como" (que resulta ser Lista vista). Por último, me he dado cuenta de que un if statement ni siquiera es necesario atrapar para el caso de que la carpeta ya esté abierta, porque su set target of funciona correctamente, a pesar de todo. Gracias.

1 votos

La esfera de @rubik, técnicamente set target of (make new Finder window) to targetFolder primero hace un nuevo Buscador ventana en la configuración de Nuevo espectáculo del Finder Windows: en General de las preferencias establecidas en Buscador y luego cambia a la valor de targetFolder . Así que esto es esencialmente hacer exactamente lo mismo que la solución descrita, sólo que automatizada. Dicho esto, si reemplaza esa línea de código con make new Finder window to folder targetFolder el ventana abierto es directamente a valor de targetFolder . Por eso he votado la nueva respuesta de S.Doe_Dude.

0 votos

@user3439894 Tu observación y análisis son 100% correctos. Ahora puedo ver que con la solución de unlocked2412, la ventana del Finder, de hecho, cambiar rápidamente las carpetas. Pero con la solución de S.Doe_Dude, la carpeta inicial es la carpeta de destino y no hay absolutamente ningún cambio, que es en realidad mi resultado deseado. Por esta razón, he convertido la respuesta de S.Doe_Dude en la respuesta aceptada. Gracias por informarme.

0voto

Esta solución te lleva a donde quieres ir, pero utiliza la solución de trabajo. Intenté establecer la propiedad "target" mientras creaba la ventana, pero no tuvo efecto. Dejé esa parte en el script pero comentada para su referencia.

set targetFolder to ((path to desktop) as text) & "testFolder:"

tell application "Finder"
    set aWin to make new Finder window --with properties {target:targetFolder}
    set aWin's target to targetFolder
end tell

También lo probé llamando en la línea de comandos con do shell script, pero tuvo el mismo efecto que el que indicas en "El problema" de arriba.

-2voto

Baczek Puntos 150

Utilice el reveal para evitar el comportamiento del open comando:

set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"
tell application "Finder"
    reveal targetFolder
    activate
end tell

Advertencia: siempre abre la ventana en vista de columna

0 votos

Estoy muy confundido por esta respuesta. En mi ordenador, este código abre el carpeta principal de la targetFolder en la nueva ventana del Finder. La página web targetFolder simplemente se resalta/selecciona en la carpeta principal. Además, no "abre la ventana siempre en la vista de columna"; este código no tiene ningún efecto sobre la vista del Finder.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X