我尝试为ImageJ制作一个javascript代码,目标是允许我选择一个目录,并在目录和子目录中返回所有jpg和jpeg文件。 我已经做了这个代码,对于直接的孩子来说效果很好,他在子目录上调用了getJpeg(我用一些IJ.log验证了它),但是jpeg数组没有连续调用结果调用
有你的想法吗?
importClass(Packages.ij.IJ);
importClass(Packages.ij.plugin.frame.RoiManager);
importClass(Packages.ij.gui.GenericDialog);
importClass(Packages.ij.io.OpenDialog);
importClass(Packages.java.io.File);
var dirstr = IJ.getDirectory("Choose the stacks folder");
var jpeg = getJpeg(dirstr);
for (var i = 0; i < jpeg.length; i++) {
IJ.log(jpeg[i]);
}
function getJpeg(dirst) {
var dir = new java.io.File(dirst);
var names = dir.listFiles();
var jpeg = new Array();
for (var i = 0 ; i < names.length; i++) {
if(names[i].isDirectory()){
jpeg.concat(getJpeg(names[i].getPath()));
continue;
}
var namest = names[i].getName();
if (namest.match(/.*\.jpg|jpeg/)) {
var path = names[i].getPath();
jpeg.push(path);
}
}
return jpeg;
}
谢谢:)
答案 0 :(得分:0)
问题来自concat文档的错误读取(w3schools.com/jsreF/jsref_concat_array.asp)。不得不放 jpeg = jpeg.concat(getJpeg(names [i] .getPath()));