InDesign CS3 内でいくつかの基本的な面付けを実行できるようにするスクリプトを作成しています。私のタスクの 1 つは、ユーザーが配置するファイルを選択できるようにするダイアログを開くことです。私は現在これを行っています:
var file = File.openDialog("Choose a File:");
問題は、ショートカットを介してネットワーク ドライブに移動するときに発生するようです。何らかの理由で、ダイアログはそれをファイルと見なし、フォルダーの場所に移動するのではなく、ダイアログからそのパスを返します。これはダイアログの単なるバグだと思います。最初に考えたのは、返されたファイルの拡張子が正しいかどうかを確認し、そうでない場合は、返されたパスの場所を開いてダイアログを再度表示することでした。ただし、デフォルトで開く場所を変更する方法が見つからないようです。、、およびopenDlg()
のパラメータのみがあります。私はJavascriptに詳しくないので、これが一般的な解決策なのか、InDesign特有のものなのかわかりません。String prompt
var filter
boolean multiselect
編集:誰かが興味を持っている場合は、問題を回避するために使用した最終的なコードを次に示します。
var path = new File("~/desktop");
var file = path.openDlg("Choose File:");
while (file.alias) {
file = file.resolve().openDlg("Choose File:");
}
基本的にはショートカット(別名)かどうかをチェックし、そうであれば対象を解決してダイアログを再表示します。ちょっとハックな方法ですが、うまくいきます。ダイアログがキャンセルされたかのように、null 処理を追加することもできますが、null が返されます。