java - 目录递归 - 如果第一个文件遇到的是目录会发生什么

标签 java file-io recursion

如果此代码遇到的第一个文件是目录,会发生什么情况。为什么它不忽略该目录中的所有其他文件(从而模糊结果)?

这取自How do I iterate through the files in a directory in Java?

我并不是想质疑这段代码的工作原理,但它如何解释上述场景?

 public static void main(String... args) {
        File[] files = new File("C:/").listFiles();
        showFiles(files);
    }

    public static void showFiles(File[] files) {
        for (File file : files) {
            if (file.isDirectory()) {
                System.out.println("Directory: " + file.getName());
                showFiles(file.listFiles()); // Calls same method again.
            } else {
                System.out.println("File: " + file.getName());
            }
        }
    }

最佳答案

当它遇到的第一个条目是目录时,它会递归调用showFiles()来处理该目录的内容。当此调用返回时,循环将继续使用第一次调用 showFiles() 中的条目。

关于java - 目录递归 - 如果第一个文件遇到的是目录会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9063344/

相关文章:

java - Spring Boot 光配置

file - Lua 保存字符串到文件

recursion - 请引导我完成这个 "Erlang Programming"递归示例

scala - 完美数递归面临的问题

java - 在指定目录创建文件

java - 在 Metaio 图像跟踪器上显示多个图像的图像

java - JVM 主机应用程序中的 JNI 本地引用生命周期

java - 如何使用java在文本文件中追加空行?

python - 如何使用枚举读取和更改 python 中的特定行?

c# - Expression<Func<>> 仅有效内联而不是通过 Moq 的 Setup() 中的绑定(bind) lambda?