2

我想把一个别名放到一个固定的文件夹,即iWorks模板文件夹到一个DMG中。

目录是

/Users/USERNAME/Library/Application Support/iWork/Pages/Templates/My Templates

我的问题是,我想将它放入 DMG 中,以便人们可以轻松安装模板。但是,虽然它适用于 Application 文件夹,但模板文件夹中始终包含我的用户名。因此,如果其他人打开它,别名将指向带有我的用户名的目录,这在不同的 mac 上当然不存在。

有谁知道如何解决它?

谢谢。


将您的所有评论与以下内容结合起来,我得到了一个按我想要的方式工作的液滴。

on open thefiles    
    set outputFolder to (path to application support folder from user domain as text) & "iWork:Pages:Templates:My Templates:"
    do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder
    tell application "Finder"
        duplicate thefiles to outputFolder
    end tell    
end open

问题是,虽然它可以在我的 Mac 上运行,但我无法在 DMG 文件中使用它。我不能在上面拖动任何东西。有任何想法吗?

感谢到目前为止。

4

3 回答 3

5

~文件夹代表用户主目录。所以你的文件夹是~/Library/Application Support/iWork/Pages/Templates/My Templates.
回应您的评论:我不确定这是否可能。ln您可以从终端尝试。它是用于制作链接的实用程序。但我认为它只是~在您使用它时转换为您的主目录的实际路径。而且我认为您必须将符号链接与硬链接相对,某些文件系统可能不支持(尽管所有mac都应该)。另一种可能性是制作一个简单的 Applescript droplet,它使用 shell 脚本将拖到它上面的文件移动到所需的路径。将以下代码粘贴到脚本编辑器中并将其另存为应用程序或应用程序包(不管哪个):

on open thefile
 do shell script "mv " & POSIX path of thefile & " ~/Library/Application\ Support/iWork/Pages/Templates/My\ Templates/"
end open

当您将文件拖到您创建的应用程序时,它会将其移动到您的目录中。您可以通过右键单击应用程序并选择“获取信息”来更改图标,然后将新图标粘贴到旧图标之上,使其看起来更像一个文件夹。

于 2010-08-08T21:17:30.487 回答
1

你可以使用这个小程序。将其保存为应用程序并将其包含在您的安装磁盘中。用户所要做的就是运行 applescript 应用程序来安装别名......或者您可以在将应用程序放在用户驱动器上之后从您自己的代码中自动运行它。只需修复 inputFile 变量以指向您的文件。在此示例中,我只是从 Address Book.app 应用程序中抓取了一张图像。

set inputFile to (path to applications folder as text) & "Address Book.app:Contents:Resources:AB16.png"

-- first create the outputFolder if necessary
set outputFolder to (path to application support folder from user domain as text) & "iWork:Pages:Templates:My Templates:"
do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder

-- create the alias in the outputFolder
tell application "Finder"
    make new alias file at folder outputFolder to file inputFile
end tell
于 2010-08-09T09:02:14.910 回答
1

您需要的是相对别名。

一个旧包能够创建它们:这个osxutils

另一种解决方案是创建符号链接。

于 2010-10-25T04:58:43.930 回答