Ссылка действий папки
Действия папки являются функцией OS X, позволяющего Вам связать сценарии AppleScript с папками. Сценарий Действия Папки выполняется, когда папка, к которой он присоединяется, открыта или закрыта, перемещена или изменена или добавила элементы или удаленный. Сценарий обеспечивает обработчик, соответствующий надлежащий формат для действия, как описано в этой главе.
Действия папки упрощают создавать горячие папки, реагирующие на внешние действия для инициирования потока операций. Например, можно использовать сценарий Действия Папки для инициирования автоматизированной обработки любой фотографии, заглядывал предназначенной папке. Правильно написанный сценарий Действия Папки оставляет горячую папку пустой. Это избегает повторенного приложения действия к тем же файлам и позволяет Действиям Папки выполнять более эффективно.
Вы можете Щелчок управления папка для получения доступ к некоторым функциям Folder Action с контекстным меню в Средстве поиска. Или можно использовать Приложение установки Действий Папки, расположенное в /Applications/AppleScript
. Это приложение позволяет Вам выполнить задачи, такие как следующее:
Включите или отключите Действия Папки.
Просмотрите папки, в настоящее время связывавшие сценарии
Просмотрите и отредактируйте сценарий, связанный с папкой.
Добавьте папки к или удалите папки из списка папок.
Свяжите один или несколько сценариев с папкой.
Включите или отключите все сценарии, связанные с папкой.
Включите или отключите отдельные сценарии, связанные с папкой.
Удалите сценарии, связанные с папкой.
Установка Действий папки ищет сценарии, расположенные в /Library/Scripts/Folder Action Scripts
и ~/Library/Scripts/Folder Action Scripts
. Можно использовать демонстрационные сценарии, расположенные в /Library/Scripts/Folder Action Scripts
или любые сценарии, которые Вы добавили к этим расположениям, или можно перейти к другим сценариям.
Сценарий Действия Папки обеспечивает обработчик (см. Ссылку Обработчика), который вызывается, когда указанное действие имеет место. При работе с обработчиками Действия Папки имейте в виду что:
Вы не вызываете Folder Actions непосредственно. Вместо этого когда инициирующее действие имеет место на папке, связанный обработчик вызывается автоматически.
Когда обработчик Действия Папки вызывается, ни один из параметров не дополнительный.
Обработчик Действия Папки не возвращает значение.
Вот то, как можно использовать сценарий Действия Папки для выполнения определенного действия каждый раз, когда файл образа отбрасывается на определенной папке изображения:
Создайте сценарий с Редактором сценариев или другое приложение сценария.
В том сценарии запишите обработчик, соответствующий синтаксису, задокументированному здесь для
“adding folder items to”
действие папки. Ваш обработчик может использовать псевдонимы, передающиеся ему для доступа к файлам образа, отброшенным на папке.Сохраните сценарий как скомпилированный пакет сценария или сценария.
Вставьте копию сценария
/Library/Scripts/Folder Action Scripts
или~/Library/Scripts/Folder Action Scripts
.Используйте Приложение установки Действий Папки, расположенное в
/Applications/AppleScript
, к:Включите действия папки для своей папки изображения.
Добавьте сценарий к той папке, выбрав сценарий, который Вы создали.
Обработчик сценария, вызывающийся после элементов, добавляется к его связанной папке.
Синтаксис
|
Заполнители
- псевдоним
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 |
Закрывается обработчик сценария, вызывающийся после связанного окна папки.
Синтаксис
|
Заполнители
- псевдоним
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 |
Обработчик сценария, вызывающийся после связанного окна папки, перемещен или изменен. Не в настоящее время доступный.
Синтаксис
|
Заполнители
- псевдоним
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 |
Специальные замечания
Обработчик сценария, вызывающийся, когда его связанная папка открыта в окне.
Синтаксис
|
Заполнители
- псевдоним
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.
Обработчик сценария, вызывающийся после элементов, был удален из его связанной папки.
Синтаксис
|
Заполнители
- псевдоним
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 |