Mac OS - 我可以使用“file:///~”之类的相对路径生成指向本地文件的可点击链接

时间:2015-02-28 19:13:57

标签: macos hyperlink applescript relative-path finder

在我的公司,我们使用Google云端硬盘,并且经常必须告诉对方特定文件的路径。路径很长,因为我们使用了大量的嵌套文件夹,因此浏览所有这些文件非常枯燥乏味。

现在,在我以前的公司中,我们使用了一个中央afp服务器,所以这条路径对每个人都很常见,因此我创建了一个可以获得文件绝对afp路径的applescript脚本,人们在邮件中粘贴了该路径或聊天,最终用户可以点击自动成为链接的路径,查找器将打开,选择该链接导致的特定文件或文件夹。

我无法使用完全相同的脚本的原因是Google云端硬盘文件夹位于用户主文件夹中。因此,如果用户的名称为Foo,则路径为file:///Users/Foo/Google Drive,而对于用户栏,路径将为file:///Users/Bar/Google Drive

显然,用户Foo生成的路径不适用于用户栏

因为,至少在终端中,file:///Users/username的路径等于~,我让我的脚本生成file:///~/Google Drive/pathToFolder之类的链接,但它们不起作用:(点击此类链接将打开取景器,但不会选择正确的文件或文件夹

这让我发疯,因为它看起来应该可以工作,但它根本就没有......我应该尝试其他语法吗?有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我实际上找到了一个相当快速的解决方案。

有一个名为Lincastor https://onflapp.wordpress.com/lincastor/的免费OSX应用程序,它只是非常棒!它允许在使用自定义URL处理程序时触发某个shell命令,applescript或app。

所以我要去:

  1. 在用户A上创建一个脚本,以googledrive://开头,而不是file://
  2. 在每个用户的mac上安装Lincastor并将其设置为打开googledrive:// urls并指向用户的主文件夹以及链接中的路径

答案 1 :(得分:1)

Applescript有“path to”命令。它可以自动生成许多常用文件夹的路径,主文件夹就是其中之一。

所以这就是我如何完成你的任务。将以下AppleScript代码保存为 应用程序 。然后只需向所有人发送电子邮件当他们双击它时,1)如果您链接到文件夹,则Finder窗口将打开该文件夹或2)如果您链接到文件,则文件将使用默认应用程序自动打开。注意:如果您不想打开文件,则可以在代码中将“打开”更改为“显示”,这样只有Finder窗口才能打开该项目。

重要提示:applescript使用冒号(:)分隔的路径而不是“/”,因此请确保在路径中使用冒号,如我的代码所示。

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