Photoshop脚本报错:selectedFile.open("r")不是函数,原因何在?
问题原因及解决办法
- 错误根源:你设置了
multi_select = true,此时File.openDialog()返回的是文件对象数组,而非单个File实例。数组没有open()方法,因此触发报错。 - 解决办法分两种场景:
- 仅需选择单个文件:把
multi_select = true改为multi_select = false,此时返回单个File对象,原代码的selectedFile.open('r')即可正常执行。 - 需要选择多个文件:遍历返回的文件数组,逐个处理每个文件,示例代码如下:
var prompt = "Elegir cuadro de materiales" var filter = "*"; var multi_select = true; var selectedFiles = File.openDialog([prompt], filter, multi_select); // 先判断是否选中文件,避免用户点击取消后报错 if (selectedFiles) { // 遍历每个选中的文件 for (var i = 0; i < selectedFiles.length; i++) { var file = selectedFiles[i]; file.open('r'); var dataToGet = file.readln(); file.close(); } }
- 仅需选择单个文件:把
- 额外提示:调用
openDialog后建议先判断返回值是否为空,防止用户点击取消操作后出现空值报错。
内容的提问来源于stack exchange,提问作者Omar Gonzales
相关产品推荐
相关产品推荐

