Я пишу сценарий, который позволяет мне выполнять базовую верстку в InDesign CS3, и одна из моих задач - открыть диалог, позволяющий пользователю выбрать файл для размещения.В настоящее время я делаю это с:
var file = File.openDialog("Choose a File:");
Проблема, кажется, при переходе к сетевому диску через ярлык.По какой-то причине диалоговое окно видит его как файл и возвращает этот путь из диалогового окна, а не перемещается в местоположение папки.Я предполагаю, что это просто ошибка в диалоге, и моей первоначальной мыслью было проверить, имеет ли возвращаемый файл правильное расширение, и, если нет, снова отобразить диалоговое окно, открытое по пути к возвращенному пути.Тем не менее, я не могу найти способ изменить, где он открывается по умолчанию;openDlg()
имеет параметры только для String prompt
, var filter
и boolean multiselect
.Я не знаком с Javascript, поэтому не знаю, относится ли это к общему решению или к InDesign.
РЕДАКТИРОВАТЬ : Если кому-то интересно, вот последний код, который я использовал для решения проблемы:
var path = new File("~/desktop");
var file = path.openDlg("Choose File:");
while (file.alias) {
file = file.resolve().openDlg("Choose File:");
}
По сути, проверяет, является ли это ярлыком (псевдонимом),и если да, решает цель и снова отображает диалоговое окно.Отчасти хакерский способ сделать это, но он работает просто отлично.Может также захотеть добавить некоторую обработку нуля, хотя, как будто диалог отменяется, возвращается ноль.