Как исправить ошибку ~ 10006 в applecriptcript при дублировании файла в другую папку? - PullRequest
0 голосов
/ 11 июля 2019

При попытке скопировать файлы в другую папку скрипт выдает ошибку ~ 10006. Это происходит только на некоторых компьютерах Mac mini и отлично работает на других. Я понятия не имею, почему он работает на некоторых компьютерах, но не на других.

Это ошибка, показанная: Не могу установить "Macintosh HD: Пользователи: имя пользователя: Документы:" в <> "Macintosh HD: Пользователи: имя пользователя: Загрузки: новый тест: ресурсы портала" приложения "Finder". (~ 10006)

tell application "Finder"
set folderToBeMoved to (container of (path to me) as text) & 
"portal_resources"
set destinationFolder to path to documents folder as text
set moveFolder to duplicate folder folderToBeMoved to destinationFolder     with replacing
end tell

ожидаемый результат - копирование файла в папку документов. Но при тестировании на некоторых Mac скрипт показывает ошибку ~ 10006. Отлично работает на других маках.

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Попробуйте этот код:

tell application "Finder"
    set folderToBeMoved to folder "portal_resources" of container of (path to me)
    set destinationFolder to path to documents folder
    set moveFolder to duplicate folderToBeMoved to destinationFolder with replacing
end tell

Здесь были две проблемы, которые я изменил.Во-первых, вы конвертируете вещи в текстовые строки и пытаетесь изменить строки, но в Finder есть богатый язык для разговоров о файловых объектах.Вы должны просто оставить все в форме объекта.Например, это:

folder "portal_resources" of container of (path to me)

говорит искателю найти папку с таким именем в этом контейнере и вернуть спецификатор объекта, который вы можете использовать напрямую.

Во-вторых, как только у вас есть этообъект, вы не можете добавить к нему спецификатор 'folder'.Где вы говорите:

duplicate folder folderToBeMoved

folderToBeMoved уже является спецификатором объекта (объект формы 'folder [path]'), так что вы на самом деле запрашиваете Finder 'папка папка [путь], 'которая выдает ошибку, которую вы видите.Это все равно, что сказать кому-то «передайте« передайте соль ».» Люди, вероятно, достаточно умны, чтобы понять это;Искатель не.

0 голосов
/ 11 июля 2019

Вы собираетесь скопировать папку в буквальную строку (путь), которая может произойти сбой на машинах под управлением более старых версий системы.

Удалите параметр as text, чтобы получить спецификатор alias

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