如果此代码遇到的第一个文件是目录,会发生什么情况。为什么它不忽略该目录中的所有其他文件(从而模糊结果)?
这取自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/