Прикрепленный скрипт был создан путем объединения двух идей скрипта.Идея состоит в том, чтобы автоматически переместить все файлы Airdrop во вложенную папку «AirDrop» в папке «Загрузки» с помощью функции «Действия папки».Тем не менее, папка 'Airdrop' должна присутствовать, чтобы эта часть скрипта работала, и иногда, при очистке, я удаляю ее вместе со всеми остальными загрузками.
Итак, я добавил немного больше кода (помнитея любитель кодирования) чтобы она проверила папку «AirDrop» и создала ее, если она отсутствует.
Эта часть работает, когда я тестирую ее в редакторе сценариев и сообщает, является ли «Airdrop»папка существует, и если она не создана.
При подключении к папке загрузки в качестве сценария действия последний добавленный код, как представляется, пропускается.Все файлы air drop попадают в папку загрузки или подпапку airdrop, если таковые имеются, но, по-видимому, скрипт проверяет наличие папки AirDrop или нет, «говорит», есть ли папка «AirDrop» или нет.Он не создаст его, если он отсутствует.
property ORIGINAL_AIRDROP_FOLDER : "macOS SSD:Users:USerName:Downloads"
property NEW_AIRDROP_FOLDER : "macOS SSD:Users:UserName:Downloads:AirDrop"
property QUARANTINE_KEY : "59"
property GET_QUARANTINE_COMMAND_START : "ls -l -@ '"
property GET_QUARANTINE_COMMAND_END : "' | tr '\\n' ' ' | sed 's/.*com\\.apple\\.quarantine\\s*\\(\\d*\\)/ \\1/' | awk '{$1=$1};1'"
------ Добавлено для проверки и создания отсутствующей подпапки ---------
tell application "Finder"
set inputFolder to (ORIGINAL_AIRDROP_FOLDER) as Unicode text
set convertedFolderPath to (ORIGINAL_AIRDROP_FOLDER) & ":" & ("AirDrop")
if (exists (folder convertedFolderPath)) then
say "Air Drop folder exists"
else
say "Air Drop folder does not exist"
make new folder at inputFolder with properties {name:"AirDrop"}
say "Created Air Drop folder"
end if
end tell
При добавлении элементов папки в this_folder после получения add_items
repeat with i from 1 to length of added_items
set current_item to item i of added_items
set quarantine_type to getQuarantineType(POSIX path of current_item)
if quarantine_type is equal to QUARANTINE_KEY then
moveFile(current_item, alias NEW_AIRDROP_FOLDER)
end if
end repeat
end adding folder items to
on moveFile(move_file, destination_dir)
tell application "Finder"
move move_file to destination_dir with replacing
end tell
end moveFile
on getQuarantineType(file_path)
return do shell script GET_QUARANTINE_COMMAND_START & file_path & GET_QUARANTINE_COMMAND_END
end getQuarantineType
Я бы хотел запустить часть скрипта для создания отсутствующей папки при необходимости.