递归函数Javascript concat数组结果 - ImageJ

时间:2017-08-24 10:05:04

标签: javascript file recursion imagej

我尝试为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;
}

谢谢:)

1 个答案:

答案 0 :(得分:0)

问题来自concat文档的错误读取(w3schools.com/jsreF/jsref_concat_array.asp)。不得不放     jpeg = jpeg.concat(getJpeg(names [i] .getPath()));