我正在尝试使用Pentaho中的Modified Javascript删除文件夹,但delete
关键字由PDI编译器保留(用于从内存中删除变量)。
这就是我的所作所为:
var source = new java.io.File("some path");
var files = source.list();
for (var i=0; i<files.length; i++) {
deleteFile(oldpath + "/" + filename); // empty folder from files, works okey
}
source.delete();
我从Pentaho那里得到了编译错误。
我在文件夹上尝试了deleteFile,但显然deleteFile无法删除文件夹。
有关如何克服使用保留字的任何建议吗?
答案 0 :(得分:2)
您的问题有两种解决方案:
1:更好:
创建作业,将当前转换导入作业。在转换中将文件夹名称设置为variable,在作业中使用delete folders步骤中的变量。
2:更容易:
在Modified Java Script Value步骤中使用反射(在Spoon 4.0.1中测试):
var source = new java.io.File("D:\\testdel");
var fileClass = source.getClass();
var delMethod = fileClass.getMethod("delete", null);
delMethod.invoke(source, null);