【发布时间】:2012-01-30 11:44:05
【问题描述】:
如果这段代码遇到的第一个文件是一个目录会发生什么。为什么它不忽略该目录中的所有其他文件(因此掩盖了结果)?
这取自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());
}
}
}
【问题讨论】: