Полное руководство: как получить все файлы в папке с определенным расширением с помощью AppleScript

AppleScript — мощный язык сценариев, позволяющий пользователям автоматизировать задачи в macOS. Одной из распространенных задач является извлечение всех файлов в папке с определенным расширением. В этой статье мы рассмотрим несколько методов достижения этой цели на примерах кода AppleScript.

Способ 1: использование приложения «Системные события»

set folderPath to POSIX path of (choose folder)
set extension to ".txt" -- desired file extension
tell application "System Events"
    set fileList to every file of folder folderPath whose name extension is extension
end tell
-- Display the file names
repeat with aFile in fileList
    display dialog name of aFile as text
end repeat

Метод 2. Использование приложения Finder

set folderPath to POSIX path of (choose folder)
set extension to ".txt" -- desired file extension
tell application "Finder"
    set fileList to every file of folder folderPath whose name extension is extension
end tell
-- Display the file names
repeat with aFile in fileList
    display dialog name of aFile as text
end repeat

Метод 3. Использование команды do Shell script

set folderPath to POSIX path of (choose folder)
set extension to ".txt" -- desired file extension
set shellCommand to "ls " & quoted form of folderPath & " | grep " & quoted form of extension
set fileList to paragraphs of (do shell script shellCommand)
-- Display the file names
repeat with aFile in fileList
    display dialog aFile
end repeat

Метод 4: использование комбинации «Системные события» и «Действия с папками».
Этот метод автоматически извлекает файлы с указанным расширением каждый раз, когда файл добавляется в папку.

property extension : ".txt" -- desired file extension
on adding folder items to theFolder after receiving theNewItems
    set filteredItems to {}
    tell application "System Events"
        repeat with anItem in theNewItems
            if name extension of anItem is extension then
                set end of filteredItems to anItem
            end if
        end repeat
    end tell
    -- Display the file names
    repeat with aFile in filteredItems
        display dialog name of aFile as text
    end repeat
end adding folder items to

В этой статье мы рассмотрели несколько методов получения всех файлов в папке с определенным расширением с помощью AppleScript. Независимо от того, предпочитаете ли вы использовать приложение «Системные события», приложение «Finder», команду «do Shell script» или комбинацию «Системные события» и «Действия с папками», теперь вы можете эффективно автоматизировать эту задачу. AppleScript обеспечивает гибкость и мощь управления файлами и папками в macOS, что делает его ценным инструментом автоматизации.