3

Я пишу некоторые AppleScript в рабочем процессе Automator, и мне нужно получить родительскую папку объекта файла (или папки). Я искал все это и получил те же ответы, которые должны использовать свойства "container", "parent" или "folder". Тем не менее, ни один из них не работает для меня, независимо от того, заключены ли они в блок 'Tell "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 ».«То же самое происходит с родителем и папкой.

Кроме того, если я делаю "отображать класс предупреждения a", я получаю "furl". Это в редакторе AppleScript. С другой стороны, рабочий процесс Automator с модулем Run Applescript с текстом

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" в окне предупреждения. Но если я вместо этого использую "return class of the_file" и использую модуль View Results, он покажет результат как {alias}. Несмотря на эти странные обозначения классов, я могу использовать обычные псевдонимы и свойства файла, такие как "путь POSIX", с файловым объектом.

Кто-нибудь знает, что здесь происходит? Моя библиотека AppleScript сломана или что-то?

1 ответ1

3

Из справки библиотеки стандартных дополнений:

Файл POSIX n: Файловый объект, указанный с именем пути в стиле POSIX (косая черта).

  • Путь POSIX (текст, r/o): путь в стиле POSIX (косая черта) файла или псевдонима объекта

Нет свойства контейнера .


Вам нужно то, что Finder считает элементом, чтобы иметь возможность сделать это. Один из способов получить это:

set b to container of (a as alias)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .