Вместо того, чтобы использовать каплю и иметь пользователя, который перетаскивает файлы на каплю, почему бы просто не сделать установщик, чтобы пользователь только дважды щелкнул по программе установки?Было бы проще, а также, вероятно, избежать вашей проблемы.Я также добавил некоторую обработку ошибок в ваш код, потому что это разумно сделать с помощью кода доставки.Мы также сообщаем пользователю, что произошло.
ПРИМЕЧАНИЕ: у вас также была ошибка в вашем коде.OutputFolder является строкой.Finder требует спецификатор файла.Чтобы превратить строку в спецификатор, вы добавляете слово «файл» или «папка» перед путем к строке.Ваш код, возможно, сработал, но правильный способ его записи - с помощью спецификатора.Другие приложения могут не использовать путь к строке, но все они будут использовать спецификатор ... поэтому привыкните использовать их вместо строк.
try
-- create the output folder if necessary
set outputFolder to (path to application support folder from user domain as text) & "iWork:Pages:Templates:My Templates:"
do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder
-- find the templates on the dmg disk
set myPath to path to me
tell application "Finder"
set myContainer to container of myPath
set templateFiles to (files of myContainer whose name extension is "template") as alias list
end tell
-- copy the templates to the output folder
-- NOTE: the script will error if any of the templates already exist
-- therefore we use a repeat loop and duplicate each file separately with a try block
-- around it to avoid errors in case some templates have already been installed.
tell application "Finder"
repeat with aTemplate in templateFiles
try
duplicate aTemplate to folder outputFolder
end try
end repeat
end tell
-- tell the user everything was OK
tell me to activate
display dialog "The templates were successfully installed! You may now use them in Pages." buttons {"OK"} default button 1 with title "Templates Installer" with icon note
on error
tell me to activate
display dialog "There was an error installing the templates. Please manually install them by copying them to the following folder." & return & return & (POSIX path of outputFolder) buttons {"OK"} default button 1 with title "Templates Installer"
end try