Почему перетаскивание папки в приложение 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 это ваше приложение.

Другие вопросы по тегам