Estoy intentando crear un servicio que haga lo siguiente:
- Si se seleccionan algunas carpetas / archivos en el Finder, copie (todas) las rutas al portapapeles
- Si no se selecciona nada, copie la "Ruta" de la ventana.
Rebuscar y obtener inspiración de publicaciones como Copiando el la ruta del directorio actual al portapapeles y la de MacYourself Copie la ruta del archivo o carpeta al portapapeles en Mac OS X Lion Tengo que el punto en el que puedo obtener las rutas de la selección, pero parece que estoy bloqueado al intentar obtener la ruta de la ventana actual si la selección está vacía.
ACTUALIZACIÓN 13-dic-2013. Recibí algunos comentarios útiles (consulte enlace ; gracias @Flavin), así que he actualizado el código al de abajo:
on run {input, parameters}
set l to {}
tell application "Finder"
set sel to (get selection)
if not sel = {} then -- there are some file/folders selected
repeat with f in (get selection)
set end of l to POSIX path of (f as alias)
end repeat
else --no stuff is selected, get the current location path
set end of l to POSIX path of (insertion location as alias)
end if
end tell
set text item delimiters to linefeed
set the clipboard to (l as text)
end run
La lógica parece sólida y funciona siempre y cuando tenga "algo" seleccionado en el Finder.
Sospecho que el Servicio podría no estar "Activo" cuando no hay nada seleccionado, (es decir, cuando el resultado deseado sería copiar la ruta actual al portapapeles).
En esta situación, la ventana del Finder aparece así:
PerointentaractivarelServiciomuestraunalistadeservicios"vacía":
Cuandotengoalgoseleccionado,lalistadeServiciossellena:
La "ruta de copia de archivo" que he definido está asociada con "Archivos y carpetas" en las Preferencias de servicios. ¿Cuál podría ser el problema?