Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Mac OS-我可以使用像“;文件://~”;_Macos_Hyperlink_Applescript_Relative Path_Finder - Fatal编程技术网

Macos Mac OS-我可以使用像“;文件://~”;

Macos Mac OS-我可以使用像“;文件://~”;,macos,hyperlink,applescript,relative-path,finder,Macos,Hyperlink,Applescript,Relative Path,Finder,在我的公司里,我们使用谷歌硬盘,经常需要告诉对方特定文件的路径。路径很长,因为我们使用了很多嵌套的文件夹,所以浏览所有这些内容非常无聊和耗时 现在,在我以前的公司,我们使用中央afp服务器,因此路径对每个人来说都是公共的,因此我创建了一个applescript脚本,可以获取文件的绝对afp路径,人们将该路径粘贴到邮件或聊天中,最终用户可以单击该路径,该路径自动成为链接,查找程序将打开,选择链接指向的特定文件或文件夹 我不能使用完全相同的脚本的原因是Google Drive文件夹位于用户主文件夹中

在我的公司里,我们使用谷歌硬盘,经常需要告诉对方特定文件的路径。路径很长,因为我们使用了很多嵌套的文件夹,所以浏览所有这些内容非常无聊和耗时

现在,在我以前的公司,我们使用中央afp服务器,因此路径对每个人来说都是公共的,因此我创建了一个applescript脚本,可以获取文件的绝对afp路径,人们将该路径粘贴到邮件或聊天中,最终用户可以单击该路径,该路径自动成为链接,查找程序将打开,选择链接指向的特定文件或文件夹

我不能使用完全相同的脚本的原因是Google Drive文件夹位于用户主文件夹中。因此,如果用户名为Foo,则路径将为
file:///Users/Foo/Google 驱动器
,而对于用户栏,路径将为
file:///Users/Bar/Google 驱动器

显然,从用户Foo生成的路径对用户Bar不起作用

因为,至少在终端中,
file:///Users/username
等于
~
,我让我的脚本生成像
文件:///~/Google Drive/pathToFolder
这样的链接,但它们不起作用:(单击这样的链接将打开查找程序,但不会选择正确的文件或文件夹

这让我抓狂,因为它看起来应该可以工作,但根本不行……还有其他语法我应该试试吗?有什么建议吗?

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

下面是我执行任务的方法。将以下applescript代码保存为一个应用程序。然后向每个人发送电子邮件。当他们双击它时,它将1)如果链接到某个文件夹,则会打开该文件夹的查找窗口;2)如果链接到某个文件,则该文件将使用默认应用程序自动打开。注意:如果你不想打开文件,那么你可以在代码中将“打开”改为“显示”,这样只有一个查找窗口会打开该项目

重要提示: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

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

有一个名为Lincastor的免费OSX应用程序,它简直太棒了
它允许在使用自定义URL处理程序时触发特定的shell命令、applescript或app

所以我要:

  • 让用户a上的脚本生成一个以googledrive://开头的字符串,而不是文件://
  • 在每个用户的mac上安装Lincastor,将其设置为打开googledrive://URL,并指向用户的主文件夹和链接中的路径

  • 尝试将
    ~
    替换为
    $HOME
    可能吧。我不知道我会如何使用它在任何时候打开不同的链接。这对运行它的任何人都适用。它将打开此人计算机上的相应项目。如果你想要一个不同的链接,只需更改路径并发送一个新的应用程序。我认为这里有一点误解:)我们每天交换几十个链接,应用程序每次都必须生成不同的链接。不管怎样,我找到了一个解决方案,如我的回复所示,谢谢你的帮助。很高兴你找到了一个解决方案。祝你好运