Ссылка действий папки

Действия папки являются функцией OS X, позволяющего Вам связать сценарии AppleScript с папками. Сценарий Действия Папки выполняется, когда папка, к которой он присоединяется, открыта или закрыта, перемещена или изменена или добавила элементы или удаленный. Сценарий обеспечивает обработчик, соответствующий надлежащий формат для действия, как описано в этой главе.

Действия папки упрощают создавать горячие папки, реагирующие на внешние действия для инициирования потока операций. Например, можно использовать сценарий Действия Папки для инициирования автоматизированной обработки любой фотографии, заглядывал предназначенной папке. Правильно написанный сценарий Действия Папки оставляет горячую папку пустой. Это избегает повторенного приложения действия к тем же файлам и позволяет Действиям Папки выполнять более эффективно.

Вы можете Щелчок управления папка для получения доступ к некоторым функциям Folder Action с контекстным меню в Средстве поиска. Или можно использовать Приложение установки Действий Папки, расположенное в /Applications/AppleScript. Это приложение позволяет Вам выполнить задачи, такие как следующее:

Установка Действий папки ищет сценарии, расположенные в /Library/Scripts/Folder Action Scripts и ~/Library/Scripts/Folder Action Scripts. Можно использовать демонстрационные сценарии, расположенные в /Library/Scripts/Folder Action Scripts или любые сценарии, которые Вы добавили к этим расположениям, или можно перейти к другим сценариям.

Сценарий Действия Папки обеспечивает обработчик (см. Ссылку Обработчика), который вызывается, когда указанное действие имеет место. При работе с обработчиками Действия Папки имейте в виду что:

Вот то, как можно использовать сценарий Действия Папки для выполнения определенного действия каждый раз, когда файл образа отбрасывается на определенной папке изображения:

  1. Создайте сценарий с Редактором сценариев или другое приложение сценария.

  2. В том сценарии запишите обработчик, соответствующий синтаксису, задокументированному здесь для “adding folder items to” действие папки. Ваш обработчик может использовать псевдонимы, передающиеся ему для доступа к файлам образа, отброшенным на папке.

  3. Сохраните сценарий как скомпилированный пакет сценария или сценария.

  4. Вставьте копию сценария /Library/Scripts/Folder Action Scripts или ~/Library/Scripts/Folder Action Scripts.

  5. Используйте Приложение установки Действий Папки, расположенное в /Applications/AppleScript, к:

    1. Включите действия папки для своей папки изображения.

    2. Добавьте сценарий к той папке, выбрав сценарий, который Вы создали.

добавление элементов папки к

Обработчик сценария, вызывающийся после элементов, добавляется к его связанной папке.

Синтаксис
on adding folder items to alias after receiving listOfAlias
[ statement ]...
end [ adding folder items to ]
Заполнители
псевдоним

alias это идентифицирует папку, получившую элементы.

listOfAlias

Список псевдонимов, идентифицирующих элементы, добавленные к папке.

оператор

Любой оператор AppleScript.

Примеры

Следующий обработчик Действия Папки инициирован, когда элементы добавляются к папке, к которой он присоединяется. Это делает заархивированную копию, в формате ZIP, отдельных элементов добавленной к присоединенной папке. Заархивированные файлы помещаются в названную папку Done в присоединенной папке.

 
on adding folder items to this_folder after receiving these_items
    tell application "Finder"
        if not (exists folder "Done" of this_folder) then
            make new folder at this_folder with properties {name:"Done"}
        end if
        set the destination_folder to folder "Done" of this_folder as alias
        set the destination_directory to POSIX path of the destination_folder
    end tell
    repeat with i from 1 to number of items in these_items
        set this_item to item i of these_items
        set the item_info to info for this_item
        if this_item is not the destination_folder and ¬
            the name extension of the item_info is not in {"zip", "sit"} then
            set the item_path to the quoted form of the POSIX path of this_item
            set the destination_path to the quoted form of ¬
                (destination_directory & (name of the item_info) & ".zip")
            do shell script ("/usr/bin/ditto -c -k -rsrc --keepParent " ¬
                & item_path & " " & destination_path)
        end if
    end repeat
end adding folder items to
закрытие окна папки для

Закрывается обработчик сценария, вызывающийся после связанного окна папки.

Синтаксис
on closing folder window for alias
[ statement ]...
end [ closing folder window for ]
Заполнители
псевдоним

alias это идентифицирует закрытую папку.

оператор

Любой оператор AppleScript.

Примеры

Следующий обработчик Действия Папки инициирован, когда закрывается папка, к которой он присоединяется. Это закрывает любые открытые окна папок в предназначенной папке.

-- This script is designed for use with OS X v10.2 and later.
on closing folder window for this_folder
    tell application "Finder"
        repeat with EachFolder in (get every folder of folder this_folder)
            try
                close window of EachFolder
            end try
        end repeat
    end tell
end closing folder window for
движущееся окно папки для

Обработчик сценария, вызывающийся после связанного окна папки, перемещен или изменен. Не в настоящее время доступный.

Синтаксис
on moving folder window for alias from bounding rectangle
[ statement ]...
end [ moving folder window for ]
Заполнители
псевдоним

alias это идентифицирует папку, перемещенную или измененную.

Можно использовать этот псевдоним для получения новых координат окна папки из Средства поиска.

ограничительный прямоугольник

Предыдущие координаты окна папки, перемещенной или измененной. Координаты предоставлены как список четырех чисел, {оставленные, вершина, право, нижняя часть}; например, {10, 50, 500, 300} для окна, источник которого около верхнего левого из экрана (но ниже строки меню, если существующий).

оператор

Любой оператор AppleScript.

Примеры
on moving folder window for this_folder from original_coordinates
    tell application "Finder"
        set this_name to the name of this_folder
        set the bounds of the container window of this_folder ¬
            to the original_coordinates
    end tell
    display dialog "Window \"" & this_name & "\" has been returned to it's original size and position." buttons {"OK"} default button 1
end moving folder window for
Специальные замечания
вводная папка

Обработчик сценария, вызывающийся, когда его связанная папка открыта в окне.

Синтаксис
on opening folderalias
[ statement ]...
end [ opening folder ]
Заполнители
псевдоним

alias это идентифицирует открытую папку.

оператор

Любой оператор AppleScript.

Примеры

Следующий обработчик Действия Папки инициирован, когда открыта папка, к которой он присоединен. Это выводит на экран любой текст от поля Spotlight Comments предназначенной папки. (До OS X v10.4, этот сценарий выводит на экран текст от поля Comments указанной папки.)

-- This script is designed for use with OS X v10.2 and later.
property dialog_timeout : 30 -- set the amount of time before dialogs auto-answer.
 
on opening folder this_folder
    tell application "Finder"
        activate
        set the alert_message to the comment of this_folder
        if the alert_message is not "" then
            display dialog alert_message buttons {"Open Comments", "Clear Comments", "OK"} default button 3 giving up after dialog_timeout
            set the user_choice to the button returned of the result
            if the user_choice is "Clear Comments" then
                set comment of this_folder to ""
            else if the user_choice is "Open Comments" then
                open information window of this_folder
            end if
        end if
    end tell
end opening folder
Специальные замечания

Центр внимания был представлен в OS X v10.4. В предыдущих версиях Mac OS, сценарий в качестве примера, показанный выше работ с полем Comments указанной папки, а не полем Spotlight Comments.

удаление элементов папки от

Обработчик сценария, вызывающийся после элементов, был удален из его связанной папки.

Синтаксис
on removing folder items from alias after losinglistOfAliasOrText
[ statement ]...
end [ removing folder items from ]
Заполнители
псевдоним

alias это идентифицирует папку, из которой были удалены элементы.

listOfAliasOrText

Список псевдонимов, идентифицирующих элементы, потерянные (удаленный) из папки. Для постоянно удаленных элементов только предоставлены имена (как text строки).

оператор

Любой оператор AppleScript.

Примеры

Следующий обработчик Действия Папки инициирован, когда элементы удалены от папки, до которой он присоединяется. Это выводит на экран предупреждение, содержащее число удаленных элементов.

on removing folder items from this_folder after losing these_items
    tell application "Finder"
        set this_name to the name of this_folder
    end tell
    set the item_count to the count of these_items
    display dialog (item_count as text) & " items have been removed " & "from folder \"" & this_name & "\"." buttons {"OK"} default button 1
end removing folder items from