我想实现一种方法,可以找到一个文件夹及其子文件夹中的所有文件,等等。
我已经通过递归实现了它,但是我不知道这是怎么回事。
有人能帮我吗?

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);
        }
    }
}

最佳答案

您需要对递归方法的每个调用都具有您在该调用中工作的目录。最小的更改应为:

    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);
        }
    }
}

09-25 15:18