¿Puedo generar un enlace para hacer clic en un archivo local usando una ruta relativa como "archivo: /// ~"

1

Este es el fondo:

en mi empresa, usamos Google Drive y, a menudo, tenemos que decirnos la ruta a un archivo en particular. Las rutas son largas, ya que usamos muchas carpetas anidadas, por lo que es bastante aburrido y lento examinar todo eso.

Ahora, en mi empresa anterior, utilizábamos un servidor central de afp, por lo que la ruta era común para todos, por lo tanto, había creado un script de Applecript que podía obtener la ruta absoluta de afp al archivo, la gente lo pegaba en un correo o chatear y el usuario final puede hacer clic en esa ruta que automáticamente se convierte en un enlace y el buscador se abrirá, seleccionando ese archivo o carpeta en particular al que condujo el enlace.

La razón por la que no puedo usar exactamente el mismo script es que la carpeta de Google Drive está en la carpeta de inicio del usuario. Entonces, si el nombre del usuario es Foo, la ruta será file:///Users/Foo/Google Drive , mientras que para la barra de usuarios la ruta será file:///Users/Bar/Google Drive

Claramente, la ruta generada por el usuario Foo no funcionará para la Barra de usuario

Ya que, al menos en el terminal, la ruta a file:///Users/username es igual a ~ , hice que mi script generara enlaces como file:///~/Google Drive/pathToFolder , pero no funcionan :( Al hacer clic en dicho enlace se abrirá el buscador , pero no seleccionará el archivo o la carpeta correcta

Esto me está volviendo loco porque parece que debería funcionar pero simplemente no ... ¿hay alguna otra sintaxis que deba probar? ¿Alguna sugerencia?

Gracias de antemano!

    
pregunta Iacopo Boccalari 28.02.2015 - 19:54

1 respuesta

3

Aquí está la solución. La secuencia de comandos que genera el enlace genera una url que comienza con un googledrive:// personalizado y luego la ruta al archivo en la carpeta de Google Drive.

A continuación, configuro lincastor para activar la siguiente secuencia de comandos para las URL que comienzan con googledrive://

on handle_url(args)
    set theUnixPath to |URL_PATH| of args
    set theUnixPath to (POSIX path of (path to home folder)) & "Google Drive" & theUnixPath
    set theMacPath to (POSIX file theUnixPath)

    #display dialog "handle url: " & theMacPath 

    tell application "Finder"
        set theItem to item theMacPath
        if (class of theItem) is folder then activate
        reveal theItem
    end tell
    activate application "Finder"

    return 1
end handle_url

El script es súper fácil, toma la url, adjunta la ruta a la carpeta de casas del usuario y /Google Drive/ , luego usa esta ruta generada para abrir el Finder y revelar el elemento

    
respondido por el Iacopo Boccalari 02.03.2015 - 22:07

Lea otras preguntas en las etiquetas