Kann ich einen anklickbaren Link zu einer lokalen Datei mit einem relativen Pfad wie „file:///~“ generieren?

Das ist der Hintergrund:

In meiner Firma verwenden wir Google Drive und müssen uns oft gegenseitig den Pfad zu einer bestimmten Datei mitteilen. Die Pfade sind lang, da wir viele verschachtelte Ordner verwenden, daher ist es ziemlich langweilig und zeitaufwändig, all das zu durchsuchen.

Jetzt haben wir in meiner vorherigen Firma einen zentralen AFP-Server verwendet, also war der Pfad für alle gleich, deshalb hatte ich ein Applescript-Skript erstellt, das den absoluten AFP-Pfad zur Datei abrufen konnte, die Leute fügten diesen Pfad in eine E-Mail oder einen Chat ein und Der Endbenutzer konnte auf diesen Pfad klicken, der automatisch zu einem Link wurde, und der Finder öffnete sich und wählte die bestimmte Datei oder den Ordner aus, zu dem der Link führte.

Der Grund, warum ich nicht genau dasselbe Skript verwenden kann, ist, dass sich der Google Drive-Ordner im Benutzerordner des Benutzers befindet. Wenn also der Name des Benutzers Foo ist, lautet der Pfad file:///Users/Foo/Google Drive, während der Pfad für den Benutzer Bar lautetfile:///Users/Bar/Google Drive

Der vom Benutzer Foo generierte Pfad funktioniert eindeutig nicht für den Benutzer Bar

Da zumindest im Terminal der Pfad zu file:///Users/usernamegleich ist ~, habe ich mein Skript dazu gebracht, Links wie zu generieren file:///~/Google Drive/pathToFolder, aber sie funktionieren nicht :( Wenn Sie auf einen solchen Link klicken, wird der Finder geöffnet, aber es wird nicht die richtige Datei oder der richtige Ordner ausgewählt

Das macht mich verrückt, weil es so aussieht, als sollte es funktionieren, aber es funktioniert einfach nicht ... gibt es eine andere Syntax, die ich ausprobieren sollte? Irgendein Vorschlag?

Vielen Dank im Voraus!

Haben Sie Zugriff auf die Maschinen, die diese Links öffnen werden?
Ja, wir sind ein kleines Unternehmen, nur 7 verschiedene Maschinen
Sie könnten LinCastor ausprobieren (ich habe jetzt keine Zeit, eine Antwort zu schreiben, aber hoffentlich hilft das ein wenig)
Genau, das habe ich gemacht und es hat wunderbar funktioniert :)
Großartig! Können Sie es als Antwort posten, damit andere sehen können, was Sie getan haben?

Antworten (1)

Hier ist die Lösung. Das Skript, das den Link generiert, generiert eine URL, die mit einer benutzerdefinierten URL beginnt googledrive://, und dann den Pfad zu der Datei im Google Drive-Ordner.

Ich habe dann lincastor so eingestellt, dass es das folgende Skript für URLs auslöst, die mit beginnengoogledrive://

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

Das Skript ist super einfach, es nimmt die URL, hängt den Pfad an den Home-Ordner des Benutzers an und /Google Drive/verwendet dann diesen generierten Pfad, um den Finder zu öffnen und das Element anzuzeigen