在AppleScript中使用的iMovie Projects文件夹的正确路径是什么

时间:2014-03-16 04:59:34

标签: applescript

我正在制作一个简单的AppleScript来制作iMovie项目文件的副本。我已将此属性添加到脚本中:

property iMovieProjects : alias (home directory of (system info) as string) & "Movies:iMovie Projects"

这给了我错误

  

文件别名Macintosh HD:用户:我的用户名:电影:未找到iMovie项目

正确的道路是什么?我尝试了iMovie Project.localized,但这也不起作用。

3 个答案:

答案 0 :(得分:3)

试试这个,看起来你需要使用Finder。另外,我在获得主路径时添加了一点简化。

property iMovieProjects : ""

tell application "Finder" to set iMovieProjects to alias ((home as string) & "Movies:iMovie Projects")

编辑根据mklement0& amp;的创意,提供不使用Finder的单行解决方案。 regulus6633

property iMovieProjects : alias ((path to movies folder as text) & "iMovie Projects.localized")

看来这个文件夹是某种特殊的包类型文件夹,这就是我们需要查找器正确解析它的原因。使用完整的.localized名称可以解决它。

答案 1 :(得分:2)

更新 :正如adamh发现的,别名错误的原因是因为文件夹的真实名称是“iMovie Projects.localized”。获取有关该文件夹的信息,您将看到它。

我想补充一点,更方便的方法是使用“path to”命令进入文件夹。使用它你几乎可以访问每个已知的文件夹。在您的情况下,我们可以直接进入Movies文件夹。您可以查看标准添加项的applescript字典,查看它知道的所有文件夹。因此,我将引用该文件夹如下。

set iMovieProjects to alias ((path to movies folder as text) & "iMovie Projects.localized:")

最后你会注意到我没有为iMovieProjects使用属性。这是因为当您编译脚本时,属性会将路径硬编码到脚本中...这意味着该脚本仅适用于此特定用户。如果该脚本由另一个用户使用,它仍然会在编译时指向该人的Movies文件夹。因此,我们不使用属性,脚本适用于任何用户。

祝你好运。

答案 2 :(得分:0)

Update2 (谢谢,@ adamh):尽管iMovie项目文件夹名称在英语语言环境中的Finder中显示为"iMovie Projects",但实际的 - locale-independent - name为{ {1}}。 (如果您想通过其本地化名称引用该文件夹,请在"iMovie Projects.localized"命令前加上set,如@ adamh的答案的第一个代码段所示。)


您只需要更改括号的方式 - 传递给tell application "Finder"的字符串必须完整地构建在括号内:

alias

Update1 :@ regulus6633非常重要,您不应该使用特定用户的路径初始化属性,因为它将被编译到脚本中。因此,上面的代码段将属性初始化为空字符串,然后在单独的property iMovieProjects : "" set iMovieProjects to alias ( ¬ (home directory of (system info) as string) & "Movies:iMovie Projects.localized" ¬ ) 语句中动态分配一个值 - 这将反映当前用户的路径。

您的原始语句无意中创建了一个包含2个元素的列表,其第一个元素是您的主目录的别名,其第二个元素是字符串“Movies:iMovie Projects”。


在{regulus6633的答案中演示了set ... to命令的简化版本(同样需要括号括起来):

path to