简体   繁体   English

我的递归有什么问题

[英]what's wrong with my Recursion

I want to implement a method that find all the files in a folder and its sub folders and so on... I have implemented it by recursion but i don't know what is wrong. 我想实现一种方法,可以找到一个文件夹及其子文件夹中的所有文件,依此类推...我已经通过递归实现了它,但是我不知道这是怎么回事。 can someone help me? 有人能帮我吗?

private void fileLister(){
    File d = new File(adress);
    File[] existingFiles =d.listFiles();
    for(int i = 0;i<existingFiles.length;i++){

        if(existingFiles[i].isDirectory()){

            fileLister();

        }
        else{

            List<File> templist = Arrays.asList(existingFiles);
                allExsistingFiles.addAll(templist);
        }
    }
}

You need each call to the recursive method to have the directory you are working in that call. 您需要对递归方法的每个调用都具有您在该调用中工作的目录。 The minimal change should be: 最小的更改应为:

    private void fileLister(File directory){
    File[] existingFiles =directory.listFiles();
    for(int i = 0;i<existingFiles.length;i++){

        if(existingFiles[i].isDirectory()){

            fileLister(existinFiles[i]);

        }
        else{

            List<File> templist = Arrays.asList(existingFiles);
                allExsistingFiles.addAll(templist);
        }
    }
}

Check IT: 核实:

public void showAll(String directoryName, ArrayList<File> files) {
    File dir = new File(directoryName);

    File[] fL = dir.listFiles();
    for (File file : fL) {
        if (file.isFile()) {
            files.add(file);
        } else if (file.isDirectory()) {
            listf(file.getAbsolutePath(), files);
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM