在AppleScript中获取文件夹的父级

在AppleScript中获取文件夹的父级

我正在 Automator 工作流程中编写一些 AppleScript,我需要获取文件(或文件夹)对象的父文件夹。我到处搜索过这个问题,得到的答案都是一样的,即使用“容器”、“父级”或“文件夹”属性。然而,无论它们是否包含在“告诉“Finder””块中,这些方法对我来说都不起作用。

因此,如果我尝试类似的事情:

set a to POSIX file "/usr/local"

tell application "Finder"
    set b to container of a
end tell

display alert a

我收到错误消息“无法获取文件“Macintosh HD:usr:local”的容器。” 父级和文件夹也发生了同样的事情。

此外,如果我输入“display alert class of a”,则会得到“furl”。这是在 AppleScript 编辑器中。另一方面,带有 Run Applescript 模块的 Automator 工作流程带有文本

on run {input, parameters}
    repeat with i from 1 to length of input
        set the_file to item i of input
        display alert class of the_file
    end repeat
    return input
end run

在警告框中显示“1634494835”。但如果我改用“返回 the_file 的类”,并使用查看结果模块,它会将结果显示为 {别名}。尽管这些类名称很奇怪,但我可以将常规别名和文件属性(如“POSIX 路径”)与文件对象一起使用。

有人知道这是怎么回事吗?我的 AppleScript 库坏了吗?

答案1

来自图书馆的帮助标准添加

POSIX 文件 n :用 POSIX(斜杠)样式路径名指定的文件对象。

  • POSIX 路径 (text, r/o) :文件或别名对象的 POSIX(斜杠)样式路径

没有容器财产。


你需要什么发现者认为物品才能做到这一点。获取它的一种方法是:

set b to container of (a as alias)

相关内容