У меня есть папка с изображениями, и мне нужно создать текстовый файл со всеми именами изображений с помощью applescript. Есть ли способ с помощью Applescript прочитать все имена файлов, их около 10 тыс., А затем вывести это в текстовый файл? Любая помощь будет здорово! Спасибо за чтение.
Пользователю Mac нужна помощь с папкой AppleScript. SFW
Ответы (3)
Почему бы просто не сделать это из терминала.
лс > pix.txt
Следующий 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
Вам не нужно создавать файл, прежде чем открыть его для доступа. Вы можете просто сделать
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'
ХТН