2016-04-29 5 views
0

Я пытаюсь переместить файл с помощью AppleScript. Это код, я использую:перемещать файлы с помощью AppleScript

on adding folder items to this_folder after receiving these_items 
    repeat with i from 1 to number of items in these_items 
     set this_item to item i of these_items 
     set the item_info to info for this_item 
     set the item_path to the quoted form of the POSIX path of this_item 

... 
... //irrelevant code here 
... 


     tell application "Finder" 
     move POSIX file item_path to POSIX file "/Users/mainuser/Desktop/Books" 
     end tell 

    end repeat 
end adding folder items to 

Если я заменяю item_path с обычным путем, например, как /Users/mainuser/Desktop/Test/test.png, чем это прекрасно работает. Что может быть причиной моей проблемы?

ответ

1

these_items является массивом alias спецификаторов, любое дальнейшее принуждение не требуется

tell application "Finder" 
    move this_item to folder "Books" of desktop 
end tell 

Свойство desktop точки всегда на рабочем столе текущего пользователя.

К слову: Finder не принимает пути POSIX (разделенные слэш), только собственные пути HFS (разделенные двоеточиями).

PS: Причина, по которой item_path не работает, является цитатой.
Это необходимо только в do shell script

1

Использование:

on adding folder items to this_folder after receiving these_items 
    tell application "Finder" to move these_items to folder "Books" of desktop 
end adding folder items to 

Параметр after receiving список значений псевдонимов AppleScript, который что-то команда находку move уже понимает и знает, как работать с. Хотя для команд приложения, таких как move, принято принимать значения, которые не являются ссылками на объекты приложения, это не совсем неизвестно; особенно с приложениями до OS X, такими как Finder, поддержка скриптов которого была полностью написана вручную, что позволяет разработчикам работать таким образом, что это было бы полезно для пользователей, а не только способами, продиктованными немыми стандартизованными инфраструктурами, такими как Cocoa Scripting от OS X.

Смежные вопросы