Пользователю Mac нужна помощь с папкой AppleScript. SFW

У меня есть папка с изображениями, и мне нужно создать текстовый файл со всеми именами изображений с помощью applescript. Есть ли способ с помощью Applescript прочитать все имена файлов, их около 10 тыс., А затем вывести это в текстовый файл? Любая помощь будет здорово! Спасибо за чтение.


person user404705    schedule 25.06.2009    source источник
comment
Безопасно для работы? Я думаю, это...   -  person Rhythmic Fistman    schedule 26.06.2009
comment
Я думаю, это зависит от того, какие изображения..   -  person stib    schedule 04.09.2009


Ответы (3)


Почему бы просто не сделать это из терминала.

лс > pix.txt

person OhioDude    schedule 25.06.2009

Следующий Applescript запишет имена файлов в папке в текстовый файл:

property theFolder : "File:Path:To:theFolder:"

tell application "Finder"

    -- Create text file on desktop to write filenames to
    make new file at desktop with properties {name:"theFile.txt"}
    set theFile to the result as alias
    set openFile to open for access theFile with write permission

    -- Read file names and write to text file
    set theFiles to every item of folder theFolder
    repeat with i in theFiles
        set fileName to name of i
        write fileName & "
" to openFile starting at eof
    end repeat

    close access openFile

end tell
person tkenington    schedule 11.07.2009

Вам не нужно создавать файл, прежде чем открыть его для доступа. Вы можете просто сделать

set theFile to (theFolder & "thefile.txt")as string
set openFile to open for access theFile with write permission

Конечно, если файл существует, он перезапишет его. Вы могли бы использовать

set thefile to choose file name with prompt "name the output file"

«выбрать имя файла» возвращает путь без создания файла и спрашивает пользователя, хотят ли они перезаписать, если файл существует.

Вы также можете использовать «return», чтобы вставить разрыв строки, например, это делает код немного аккуратнее:

write fileName & return to openFile

Конечно, если вам нужен простой и более элегантный способ сделать это, команда — это то, что вам нужно.

ls>thefile.txt

В этом примере '>' записывает вывод команды ls (список каталогов) в файл. Вы можете запустить это из AppleScript

set thePosixDrectory to posix path of file thedirectory of app "Finder"
set theposixResults to posix path of file theresultfile of app "Finder"
do shell script ("ls \"" & thePosixDrectory & "\">\"" & theposixResults & "\"")as string

материал пути posix состоит в том, чтобы превратить стиль applescript directory:paths:to your:files в стиль unix /directory/paths/to\ your/files.

Обратите внимание, что сценарий оболочки, который фактически запускается, будет выглядеть так:

ls "/some/directory/path/">"/some/file/path.txt"

кавычки нужны для того, чтобы пробелы или другие странные символы не путали сценарий оболочки. Чтобы кавычки не читались как кавычки в яблочном скрипте, для их «убегания» использовалась обратная косая черта. Вы также можете использовать одинарные кавычки для более читаемого кода:

сделать сценарий оболочки ("ls '" & thePosixDrectory & "'>'" & theposixResults & "'") как строку

который появится в оболочке как

 ls '/some/directory/path/'>'/some/file/path.txt'

ХТН

person stib    schedule 14.07.2009