Obtém o pai da pasta no AppleScript

3

Estou escrevendo um AppleScript em um fluxo de trabalho do Automator e preciso obter a pasta pai de um objeto de arquivo (ou pasta). Eu procurei por tudo isso e obtive as mesmas respostas, que são usar as propriedades "contêiner", "pai" ou "pasta". No entanto, nenhum desses trabalhos funciona para mim, estejam ou não envolvidos em um bloco "tell" "Finder".

Assim, se eu tentar algo como:

set a to POSIX file "/usr/local"

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

display alert a

Recebo a mensagem de erro "Não consigo obter o contêiner do arquivo" Macintosh HD: usr: local ". ' A mesma coisa acontece com o pai e a pasta.

Além disso, se eu exibir "classe de alerta de um", recebo "furl". Isso está no Editor AppleScript. Por outro lado, um fluxo de trabalho do Automator com um módulo Executar Applescript com o texto

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

exibe "1634494835" em uma caixa de alerta. Mas se eu usar "return class of the_file", e usar o módulo View Results, ele mostrará o resultado como {alias}. Apesar dessas designações de classes estranhas, posso usar alias e propriedades de arquivo regulares, como "caminho POSIX", com o objeto de arquivo.

Alguém tem alguma idéia do que está acontecendo aqui? Minha biblioteca AppleScript está quebrada ou algo assim?

    
por UnnamedMook 08.01.2012 / 23:23

1 resposta

3

A partir da ajuda da Biblioteca de Adições Standard :

POSIX file n : A file object specified with a POSIX (slash)-style pathname.

  • POSIX path (text, r/o) : the POSIX (slash)-style path of a file or alias object

Não há nenhuma propriedade container .

Você precisa do que o Finder considera um item para poder fazer isso. Uma maneira de obtê-lo:

set b to container of (a as alias)
    
por 08.01.2012 / 23:30