Piszę scenariusz, który pozwala mi wykonać pewne podstawowe nałożenie w programie InDesign CS3, a jednym z moich zadań jest otwarcie okna dialogowego pozwalającego użytkownikowi wybrać plik do umieszczenia. Obecnie robię to z:Jak zmienić domyślną ścieżkę otwierania pliku?
var file = File.openDialog("Choose a File:");
Problem pojawia się podczas nawigowania do dysku sieciowego za pośrednictwem skrótu. Z jakiegoś powodu okno dialogowe widzi go jako plik i zwraca tę ścieżkę z okna dialogowego, a nie do lokalizacji folderu. Zakładam, że jest to po prostu błąd w oknie dialogowym, a moją początkową myślą było sprawdzenie, czy zwrócony plik ma poprawne rozszerzenie, a jeśli nie, ponownie wyświetlić okno dialogowe, otwarte dla zwróconej lokalizacji ścieżki. Jednak nie mogę znaleźć sposobu na zmianę miejsca domyślnie; openDlg()
ma tylko parametry dla String prompt
, var filter
i boolean multiselect
. Nie znam JavaScriptu, więc nie wiem, czy jest to coś z ogólnym rozwiązaniem, czy w szczególności z InDesign.
EDIT: Jeśli ktoś jest zainteresowany, oto ostateczny kod użyłem, aby ominąć ten problem:
var path = new File("~/desktop");
var file = path.openDlg("Choose File:");
while (file.alias) {
file = file.resolve().openDlg("Choose File:");
}
Zasadniczo, sprawdza, czy jest to skrót (alias), a jeśli tak, to rozwiązuje ten cel i ponownie wyświetla okno dialogowe. Coś w hackish sposób, ale to działa dobrze. Może chcieć dodać tam także obsługę zerową, jednak tak, jakby okno dialogowe zostało anulowane, zwracana jest wartość null.
Bingo! Otrzymywałem błędy przez minutę zanim zdałem sobie sprawę, że istnieje 'openDialog' i' openDlg', jeden dla elementów Class, jeden dla elementów Instance. 'openDlg' działa świetnie, dziękuję! – kcoppock