Iacopo Boccalari
Iacopo Boccalari

Reputation: 1245

Mac OS - Can I generate a clickable link to local file using relative path like “file:///~”

In my company, we use Google Drive and often have to tell each other the path to a particular file. Paths are long as we use a lot of nested folders, so it's pretty boring and time consuming to browse through all that.

Now, in my previous company, we used a central afp server, so the path was common to everyone, therefore I had created an applescript script that could get the absolute afp path to the file, people pasted that path in a mail or chat and the end user could click on that path which automatically became a link and the finder would open, selecting that particular file or folder that the link led to.

The reason I can't use the exact same script is that Google Drive folder is in the user home folder. So if user's name is Foo the path will be file:///Users/Foo/Google Drive, while for user Bar the path will be file:///Users/Bar/Google Drive

Clearly the path generated from user Foo won't work for user Bar

Since, at least in the terminal, the path to file:///Users/username equals to ~, I made my script generate links like file:///~/Google Drive/pathToFolder, but they do not work :( Clicking on such a link will open the finder, but won't select the right file or folder

This is driving me crazy because it looks like it should work but it simply doesn't... is there any other syntax I should try? Any suggestion?

Upvotes: 2

Views: 26747

Answers (2)

Iacopo Boccalari
Iacopo Boccalari

Reputation: 1245

I actually found a reasonably quick solution to this.

There's a free OSX app called Lincastor https://onflapp.wordpress.com/lincastor/ which is just awesome! It allows to trigger a certain shell command, applescript or app whenever a custom URL handler is used.

So I'm going to:

  1. have a script on user A generate a ling starting with googledrive:// instead of file://
  2. install Lincastor on every user's mac and set it to open googledrive:// urls and point to the user's home folder plus the path in the link

Upvotes: 2

regulus6633
regulus6633

Reputation: 19040

Applescript has the "path to" command. It can automatically generate the path to many common folders, the home folder being one of them.

So here's how I would do your task. Save the following applescript code as an application. Then just email that application everyone. When they double-click it it will 1) if you link to a folder then a Finder window will open to that folder or 2) if you link to a file then the file will automatically open using the default application. NOTE: if you don't want files to open then you can change "open" to "reveal" in the code so only a Finder window will open to the item.

IMPORTANT: applescript uses colon (:) delimited paths instead of "/", so make sure to use colons in your path as shown in my code.

set itemPath to (path to home folder as text) & "Google Drive:path:to:some:file:or:folder"
tell application "Finder"
    set theItem to item itemPath
    if (class of theItem) is folder then activate
    open theItem
end tell

Upvotes: 1

Related Questions