Переместите пропущенные файлы в папку X, в противном случае просто откройте X с помощью Applescript - PullRequest
0 голосов
/ 12 октября 2019

Я хотел бы создать Applescript, который имитирует поведение псевдонима в определенной папке X. Если файлы перетаскиваются в него, их следует переместить в папку X, но если Applescript просто дважды щелкнуть, папка Xдолжен быть открыт.

Я новичок в Applescript, но адаптируя вещи, которые я нашел в Интернете, я создал рабочие части: одну, которая перемещает перетаскиваемые файлы в X, и другую, которая открывает X. Я не знаюдостаточно объединить их с логикой «если ... еще», чтобы, если ничего не перетаскивалось, папка открывалась;но если вещи перетаскиваются, они перемещаются в X, а X не открывается.

    repeat with a from 1 to length of theDroppedItems
        set theCurrentDroppedItem to item a of theDroppedItems
        tell application "Finder"
            set folderMyFolder to folder "/Users/myname/myfolder"  
            move theCurrentDroppedItem to folderMyFolder
        end tell
    end repeat
end open

tell application "Finder" to open "Macintosh HD:Users:myname:myfolder"

1 Ответ

0 голосов
/ 12 октября 2019

Когда ваш скрипт содержит обработчик open, ему будут переданы элементы, сброшенные в приложение, а обработчик run - тот, который вызывается при двойном щелчке приложения. Вам не нужно делать каких-либо сравнений, просто поместите операторы для выполнения в соответствующий обработчик, например:

property targetFolder : ((path to home folder) as text) & "path:to:myfolder"

on run
    tell application "Finder" to open folder targetFolder
end run

on open droppedItems
    repeat with anItem in droppedItems
        tell application "Finder" to move anItem to folder targetFolder
    end repeat
end open

Обратите внимание, что Finder не знает о путях POSIX, поэтому используйте ихвам нужно будет привести пути к тому, что может обработать Finder, или использовать то, что знает пути POSIX, например, системные события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...