Почему перетаскивание папки в приложение Applescript отображает диалоговое окно?
У меня есть приложение Applescript, которое может получать файлы или папки, сброшенные на его значок:
on open theDroppedItems
tell application "Finder"
set droppedItemSourcePath to (the POSIX path of theDroppedItems)
...
На этом этапе сценария, когда мое приложение получает файл или папку, неизвестное и бесполезное приложение Applescript с именем "Droplet" отображает диалоговое окно открытия файла / папки. Мой скрипт был скомпилирован как приложение с Script Debugger 6.
Я не понимаю, почему это странное приложение "Droplet" спрашивает меня что-то.
1 ответ
Ошибка в том, что theDroppedItems
это список alias
спецификаторы, даже если был удален только один файл, и получение пути к списку POSIX приводит к ошибке
Чтобы получить все пути POSIX отброшенных предметов, используйте
on open theDroppedItems
set {TID, text item delimiters} to {text item delimiters, return}
set droppedItemsSourcePaths to POSIX path of (theDroppedItems as text)
set text item delimiters to TID
display dialog droppedItemsSourcePaths buttons {"OK"} default button "OK"
...
Для обработки файлов по одному используйте цикл
on open theDroppedItems
repeat with anItem in theDroppedItems
-- do something with anItem
end repeat
...
Используйте Finder tell
блокируйте только если вы собираетесь использовать терминологию Finder.
Упомянутый Droplet
это ваше приложение.