递归显示具有特定扩展名的所有文件

时间:2016-11-15 03:20:51

标签: java recursion

我得到了一些伪造的代码来让我继续前进,但我无法理解这一切。扩展名分配给变量" ext"

public void findMatchingFiles(File f) {

    if (f.isFile() == true) {
        if () {

        foundFiles.add(f.getPath());
        }

        return;
    } else {
        for ( : ) {
            findMatchingFiles(subFile);
        }

    }

 }
}

这是我到目前为止所做的,似乎无法填补空白。非常感谢任何提示或帮助。

gulp watch

1 个答案:

答案 0 :(得分:0)

public void findMatchingFiles(File f) {

    //i added this. you need to change it to be whatever extension you want to match
    String myExtension = ".exe";

    if (f.isFile() == true) {

        //i added this block. it gets the extension and checks if it matches
        int i = fileName.lastIndexOf('.');
        String extension = fileName.substring(i+1);
        if (extension.equals(myExtension)) {
            foundFiles.add(f.getPath());
        }
        return;
    } else {

        //i added this. it gets all the files in a folder
        for (File subFile : f.listFiles()) {
            findMatchingFiles(subFile);
        }
    }
}

上面的代码可以解决您的问题。你遗失的两件事是:

  1. 如何获取文件夹中的文件。谷歌搜索发现了这个:Getting the filenames of all files in a folder
  2. 如何获取文件扩展名。谷歌搜索发现了这个:How do I get the file extension of a file in Java?
  3. 我将这两者插入到您的代码中,它应该可以正常工作。另请注意我添加的名为myExtension的变量。您需要更改此变量以反映您实际想要匹配的扩展名。