Applesricpt как переместить файлы в /Library/Caches

Я работаю над кодом applesript, который позволяет пользователям настраивать фон экрана входа/изменения пользователя. В настоящее время я использую базовый пользовательский интерфейс applescript, но надеюсь реализовать более продвинутый пользовательский интерфейс applescript-objC, если это удастся. На данный момент у меня возникли проблемы с перемещением изображения "ch_pic" в /library/Caches, не могли бы вы помочь мне с этой проблемой.

set ch_pic to (choose file)

--Creates variables for paths


--Creates application folder in user library for storing assets and code

tell application "Finder"
move file ch_pic to Library / Caches
end tell

--Moves user selected file to application folder

set the name of file ch_pic to "com.apple.desktop.admin.png"

Если вы спросите, я помещу ваше имя в код готового продукта.


person Mitchell Browne    schedule 24.07.2016    source источник


Ответы (1)


Довольно просто, если вы просто выбираете, перемещаете и переименовываете файл. Просто нужно убедиться, что вы говорите в стиле PATH, который понимает Applescript.

Вот пример кода:

-- Set ch_pic to chosen file (restricting to only recognized "image" types)
set ch_pic to (choose file of type "public.image"))
tell application "Finder"
-- Set cache_folder to Caches destination (~/Library/Caches) as Applescript path (<hard drive name>:Users:<user name>:Library:Caches)
    set cache_folder to (((path to library folder from user domain as text) & "Caches"))
    -- Copy the file over
    copy file ch_pic to folder cache_folder
    -- Grab the full Applescript path of the newly placed file (two steps for clarity. 1: set the path. 2: explicitly inform Applescript that this is a file)
    set new_pic to ((cache_folder as text) & ":" & name of ch_pic)
    set pos_new_pic to (file new_pic)
    -- Perform the rename
    set the name of pos_new_pic to "com.apple.desktop.admin.png"
end tell
person EricDAltman    schedule 27.07.2016
comment
Возвращаясь к этому на всякий случай. Если этот ответ решил вашу проблему, отметьте ее как решенную. Спасибо. - person EricDAltman; 16.03.2017