Капелька AppleScript на DMG, не работающем

Эй мне сохранили следующий AppleScript как Капельку. Это сохраняется на файле DMG как этот http://dl.dropbox.com/u/1839051/TestDMG.dmg

Проблема, в то время как некоторые могут перетащить шаблон на Капельку и иметь ее работа, когда я пытаюсь перетащить шаблон на капельку, пересеченный круговой символ разоблачает указание, что это действие не возможно. Ничего не происходит, файл не копируется.

У кого-либо есть какая-либо идея, почему у меня есть эта проблема и как она может быть зафиксирована? Заранее спасибо парень.

on open thefiles    
  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

  tell application "Finder"
    duplicate thefiles to outputFolder
  end tell    
end open

1
задан Lukas Oppermann 12 August 2010 в 07:37
поделиться

2 ответа

Вместо того, чтобы использовать каплю и заставлять пользователя перетаскивать файлы в каплю, почему бы просто не сделать установщик, чтобы пользователю нужно было только дважды щелкнуть установщик? Было бы проще и, вероятно, избежать вашей проблемы. Я также добавил некоторую обработку ошибок в ваш код, потому что это разумно делать с кодом доставки. Мы также рассказываем пользователю, что произошло.

ПРИМЕЧАНИЕ: у вас также была ошибка в вашем коде. 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
1
ответ дан 2 September 2019 в 22:15
поделиться

Похоже, это проблема с правами доступа, и я должен задаться вопросом, не связана ли разница между теми, кто может, и теми, кто не может, с тем, под какой ОС они работают. Я работаю под управлением Mac OS 10.6 от имени администратора и не смог выполнить действие в DMG. Но я смог выполнить действие, если перетащил оба файла из DMG на рабочий стол.

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

1
ответ дан 2 September 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: