簡體   English   中英

我的遞歸有什么問題

[英]what's wrong with my Recursion

我想實現一種方法,可以找到一個文件夾及其子文件夾中的所有文件,依此類推...我已經通過遞歸實現了它,但是我不知道這是怎么回事。 有人能幫我嗎?

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

核實:

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