Posso gerar um link clicável para o arquivo local usando o caminho relativo como "file: /// ~"

1

Este é o plano de fundo:

na minha empresa, usamos o Google Drive e geralmente precisamos informar um ao outro o caminho para um arquivo específico. Os caminhos são longos desde que utilizemos muitas pastas aninhadas, por isso é muito chato e demorado navegar por tudo isso.

Agora, na minha empresa anterior, usamos um servidor afp central; portanto, o caminho era comum a todos; portanto, eu criei um script AppleScript que poderia obter o caminho afp absoluto para o arquivo, as pessoas colaram esse caminho em um email ou chat e o usuário final poderia clicar no caminho que se tornaria automaticamente um link e o localizador abriria, selecionando o arquivo ou pasta específico ao qual o link levava.

O motivo pelo qual não posso usar exatamente o mesmo script é que a pasta do Google Drive está na pasta inicial do usuário. Portanto, se o nome do usuário for Foo, o caminho será file:///Users/Foo/Google Drive, enquanto para o usuário Bar, o caminho seráfile:///Users/Bar/Google Drive

Claramente, o caminho gerado pelo usuário Foo não funcionará para a barra do usuário

Como, pelo menos no terminal, o caminho para o qual file:///Users/usernameé igual a ~, fiz meu script gerar links como file:///~/Google Drive/pathToFolder, mas eles não funcionam :( Clicar nesse link abrirá o localizador, mas não selecionará o arquivo ou a pasta certos

Isso está me deixando louco porque parece que deveria funcionar, mas simplesmente não funciona ... existe alguma outra sintaxe que devo tentar? Alguma sugestão?

Desde já, obrigado!

Iacopo Boccalari
fonte
Você tem acesso às máquinas que abrirão esses links?
0942v8653
Sim eu faço, nós somos uma empresa pequena, apenas 7 máquinas diferentes
Iacopo Boccalari
11
Você poderia tentar LinCastor (Eu não tenho tempo para escrever uma resposta agora, mas espero que ajude um pouco)
0942v8653
11
Exatamente, é isso que eu fiz e funcionou como um encanto :)
Iacopo Boccalari
11
Ótimo! Você pode publicá-lo como uma resposta para que outras pessoas possam ver o que você fez?
0942v8653 02

Respostas:

3

Aqui está a solução. O script que gera o link gera um URL que começa com um personalizado googledrive://e, em seguida, o caminho para o arquivo na pasta do Google Drive.

Em seguida, defino o lincastor para acionar o seguinte script para URLs começando com 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

O script é super fácil, pega o URL, anexa o caminho à pasta home do usuário e /Google Drive/, em seguida, usa esse caminho gerado para abrir o Finder e revelar o item

Iacopo Boccalari
fonte