Puis-je générer un lien cliquable vers un fichier local en utilisant un chemin relatif du type "fichier: /// ~"

1

Ceci est le fond:

dans mon entreprise, nous utilisons Google Drive et devons souvent nous dire le chemin d'accès à un fichier particulier. Les chemins sont longs car nous utilisons beaucoup de dossiers imbriqués, il est donc fastidieux et fastidieux de parcourir tout cela.

Dans mon entreprise précédente, nous utilisions un serveur afp central. Le chemin était donc commun à tout le monde. J'avais donc créé un script applescript qui permettait d'obtenir le chemin absolu du fichier, les personnes le collant dans un courrier ou une discussion en temps réel. l'utilisateur final peut cliquer sur ce chemin qui devient automatiquement un lien et le chercheur s'ouvrira en sélectionnant le fichier ou le dossier particulier auquel le lien mène.

La raison pour laquelle je ne peux pas utiliser exactement le même script est que le dossier Google Drive se trouve dans le dossier de départ de l'utilisateur. Donc, si le nom de l'utilisateur est Foo, le chemin sera file:///Users/Foo/Google Drive, tandis que pour l'utilisateur Bar, le chemin sera file:///Users/Bar/Google Drive

Clairement, le chemin généré par l'utilisateur Foo ne fonctionnera pas pour l'utilisateur Bar

Depuis, au moins dans le terminal, le chemin de file:///Users/username est égal à ~, J'ai fait mon script générer des liens comme file:///~/Google Drive/pathToFolder, mais ils ne fonctionnent pas :( Un clic sur un tel lien ouvre le viseur, mais ne sélectionne pas le bon fichier ou dossier

Cela me rend folle parce que cela semble fonctionner, mais ça ne fonctionne tout simplement pas ... y a-t-il une autre syntaxe que je devrais essayer? Toute suggestion?

Merci d'avance!

Iacopo Boccalari
la source
Avez-vous accès aux machines qui ouvriront ces liens?
0942v8653
Oui, nous sommes une petite entreprise, seulement 7 machines différentes.
Iacopo Boccalari
1
Tu pourrais essayer LinCastor (Je n'ai pas le temps d'écrire une réponse pour le moment, mais j'espère que ça aide un peu)
0942v8653
1
C'est exactement ce que j'ai fait et ça a fonctionné comme un charme :)
Iacopo Boccalari
1
Génial! Pouvez-vous l'afficher en tant que réponse afin que les autres personnes puissent voir ce que vous avez fait?
0942v8653

Réponses:

3

Voici la solution. Le script qui génère le lien génère une URL commençant par une personnalisation. googledrive:// puis le chemin d'accès au fichier dans le dossier Google Drive.

J'ai ensuite configuré lincastor pour déclencher le script suivant pour les URL commençant par 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

Le script est super facile, il prend l’URL, attache le chemin au dossier personnel de l’utilisateur et /Google Drive/, utilise ensuite ce chemin généré pour ouvrir le Finder et afficher l'élément

Iacopo Boccalari
la source