Mac下ExtendScript的openDialog()筛选CSV文件失效问题排查
问题排查与修复
你的代码有几个明显问题导致CSV筛选失效,逐个理清楚:
1. 筛选条件完全错配
你写的fileFilter函数里判断的是xml/XML后缀,但你要的是CSV文件,这根本是南辕北辙,肯定不会筛选CSV。
2. 未处理无扩展名的文件
如果遇到没有扩展名的文件,file.name.lastIndexOf(".")会返回-1,这时substring(index + 1)就变成substring(0),会把整个文件名当作扩展名,导致判断出错。
3. 大小写匹配不够严谨
Mac系统里文件扩展名大小写不敏感,比如.CSV和.csv都是合法的CSV文件,单独判断两种写法不够灵活,统一转小写更稳妥。
修正后的完整代码
// target the active Premiere Pro project var activeSequence = app.project.activeSequence; // import the CSV file var file = File.openDialog("Select a CSV file to import.", fileFilter); if (file) { file.open("r"); var data = file.read(); file.close(); } //This is the filter used by the openDialog function function fileFilter(file){ // 先处理没有扩展名的情况 var index = file.name.lastIndexOf("."); if (index === -1) { return false; } // 统一转小写,避免大小写问题 var ext = file.name.substring(index + 1).toLowerCase(); // 判断是否为csv return ext === "csv"; }
内容的提问来源于stack exchange,提问作者Tack00
相关产品推荐
相关产品推荐

