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/username
gleich 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!
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
0942v8653
Iacopo Boccalari
0942v8653
Iacopo Boccalari
0942v8653