2010-08-08 1 views
1

Я хочу поместить псевдоним в фиксированную папку, а именно в папку шаблона iWorks в DMG.Mac Создать псевдоним для файла DMG без фиксированного пользователя в нем

Каталог является

/Users/USERNAME/Library/Application Support/iWork/Pages/Templates/My Templates 

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

Кто-нибудь знает, как это исправить?

Спасибо.


Объединяя все ваши комментарии к следующему, я получаю капельку, которая работает так, как я хочу.

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 

Проблема в том, что, хотя она работает на моем mac, я не могу использовать ее внутри файла DMG. Я не могу перетащить что-нибудь на нем. Есть идеи?

Спасибо.

ответ

5

Папка ~ представляет собой домашний каталог пользователей. Таким образом, ваша папка будет ~/Library/Application Support/iWork/Pages/Templates/My Templates.
В ответ на ваши комментарии: Я не уверен, что это возможно. Вы можете попробовать ln от терминала. Это утилита для создания ссылок. Но я думаю, что он просто преобразует ~ в фактический путь вашего домашнего каталога, когда вы его используете. И я думаю, вам нужно будет сделать символическую ссылку, связанную с жесткой ссылкой, которую некоторые файловые системы могут не поддерживать (все маки должны, хотя). Другой возможностью было бы сделать простую каплю Applescript, которая использует сценарий оболочки, чтобы переместить файл, который вы перетаскиваете на него, на нужный вам путь. Вставьте следующий код в редакторе сценариев и сохранить его в качестве приложения или Application Bundle (не имеет значения, какой):

on open thefile 
do shell script "mv " & POSIX path of thefile & " ~/Library/Application\ Support/iWork/Pages/Templates/My\ Templates/" 
end open 

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

+0

Окей, так, по-видимому, благодаря вашему входу я понял, что это, кажется, '~/Library/Application \ Support/iWork/Pages/Templates/My \ Templates /' по крайней мере, в терминале, который , Как мне получить папку/псевдоним, чтобы представить эту ссылку? Спасибо за помощь. –

+0

Я отредактировал свой ответ, чтобы показать вам возможные решения. – None

1

Вы можете использовать этот applescript. Сохраните его как приложение и включите его на установочный диск. Все, что пользователь должен будет сделать, это запустить приложение applescript для установки псевдонима ... или вы можете запустить его автоматически из своего собственного кода после размещения приложения на диске пользователя. Просто исправьте переменную inputFile, чтобы указать на ваш файл. В этом примере я просто захватил изображение из приложения Address Book.app.

set inputFile to (path to applications folder as text) & "Address Book.app:Contents:Resources:AB16.png" 

-- first create the outputFolder 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 

-- create the alias in the outputFolder 
tell application "Finder" 
    make new alias file at folder outputFolder to file inputFile 
end tell 
1

Что вам нужно, это относительные псевдонимы.

Старая упаковка может их создать: osxutils.

Другим решением является создание символической ссылки.

+0

Желаю, чтобы osxutils побежал на машинах Intel! –