2011-01-28 34 views
5

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.

Odpowiedz

1

Czy próbowałeś dostać uchwyt do pliku/katalogu, który chcesz domyślnie i dzwoniąc fileHandle.openDlg()?

http://forums.adobe.com/message/1109421#1109421

+0

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