0 votos

Utilizar el Finder para actuar sobre una ruta, a través de JXA

Para un ejemplo específico, he aquí cómo cambiar el nombre de un archivo específico a través del Finder, en AppleScript:

tell application "Finder" to set name of (POSIX file "/some/file/path" as alias) to "new name"

Y aquí se explica cómo cambiar el nombre del seleccionado a través del Finder, en JavaScript for Automation (JXA):

Application("Finder").selection()[0].name = "new name"

¿Cómo se puede hacer lo de la última línea, pero actuando sobre una trayectoria concreta en lugar de limitarse a la selección? Es importante utilizar el Finder, porque permite (a través del mismo mecanismo) hacer algo más que cambiar el nombre (como establecer un comentario).

1voto

aaplmath Puntos 599

Es bastante extraño que Finder no exponga ningún método para convertir un Path a un objeto de archivo del Finder, pero no parece existir ninguno. En su lugar, parece (por esta pregunta ) que el sistema de eventos aliases es la única manera de convertir una cadena de ruta en un objeto Finder, de esta manera:

file = Application('System Events').aliases['/some/file/path']
console.log(file.name()) // --> 'path'
file.name = 'newname'

Finder le permite desglosar manualmente la jerarquía de archivos (véase esta respuesta ), pero es un dolor:

file = Application('Finder').startupDisk.folders['some'].folders['file'].documentFiles['path']
console.log(file.name()) // --> 'path'
file.name = 'newname'

Sin embargo, sólo algunos de los atributos que estos objetos deben exponer me funcionan realmente en Big Sur. (La lectura y escritura de comentarios, por ejemplo, no parece funcionar). Si necesitas un scripting de Finder fiable y robusto, JXA simplemente puede no ser el camino a seguir.

-1voto

zino Puntos 16

Existe una Path mencionado en el docs

Esto funciona para mí:

Application("Finder").delete(Path("/a/b/c"));

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