在我的公司,我们使用 Google Drive,并且经常必须告诉对方特定文件的路径。由于我们使用大量嵌套文件夹,路径很长,因此浏览所有这些内容非常无聊且耗时。
现在,在我以前的公司,我们使用中央 afp 服务器,因此该路径对每个人来说都是通用的,因此我创建了一个 applescript 脚本,可以获取文件的绝对 afp 路径,人们将该路径粘贴到邮件或聊天中最终用户可以单击该路径,该路径会自动成为链接,查找器将打开,选择链接指向的特定文件或文件夹。
我无法使用完全相同的脚本的原因是 Google Drive 文件夹位于用户主文件夹中。因此,如果用户的名称是 Foo,则路径将为
file:///Users/Foo/Google Drive
,而对于用户 Bar,路径将为 file:///Users/Bar/Google Drive
显然从用户 Foo 生成的路径不适用于用户 Bar
因为,至少在终端中,
file:///Users/username
的路径等于~
,所以我让我的脚本生成像file:///~/Google Drive/pathToFolder
这样的链接,但它们不起作用:(单击这样的链接将打开查找器,但是不会选择正确的文件或文件夹
这让我发疯,因为它看起来应该可以工作,但它根本不起作用......我还应该尝试其他语法吗?有什么建议吗?
我实际上找到了一个相当快速的解决方案。
有一个名为 Lincastor 的免费 OSX 应用程序 https://onflapp.wordpress.com/lincastor/ 这真是太棒了!它允许在使用自定义 URL 处理程序时触发特定的 shell 命令、applescript 或应用程序。
所以我要:
这就是我如何完成你的任务。将以下 applescript 代码保存为
application。然后只需向每个人发送该申请即可。当他们双击它时,将 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