我正在编写一个脚本,允许我在 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:");
}
基本上,检查它是否是快捷方式(别名),如果是,则解析目标并再次显示对话框。一种骇人听闻的方式来解决它,但它工作得很好。可能还想在其中添加一些 null 处理,但是,就好像对话框被取消一样,返回 null。