java怎么使用递归读取指定目录(包括子目录)下的所有文件,并将文件列表打印到控制台。
时间: 2024-09-15 10:08:52 浏览: 42
在Java中,你可以使用`java.io.File`类以及`File.listFiles()`方法配合递归来遍历并打印指定目录及其子目录下的所有文件。下面是一个简单的示例:
```java
import java.io.File;
public class RecursiveDirectoryTraversal {
public static void printFiles(String directoryPath) {
File dir = new File(directoryPath);
if (dir.exists() && dir.isDirectory()) { // 检查是否是存在的目录
printFilesRecursively(dir); // 调用递归函数
} else {
System.out.println("Directory not found or not a directory.");
}
}
private static void printFilesRecursively(File currentDir) {
for (File file : currentDir.listFiles()) {
if (file.isFile()) { // 如果是文件,则打印
System.out.println(file.getAbsolutePath());
} else if (file.isDirectory()) { // 如果是子目录,继续递归遍历
printFilesRecursively(file);
}
}
}
public static void main(String[] args) {
String pathToTraverse = "/path/to/your/directory"; // 替换为你要遍历的实际路径
printFiles(pathToTraverse);
}
}
```
在这个例子中,`printFiles()`是主函数,它接受一个路径作为输入。`printFilesRecursively()`是一个辅助递归方法,它会遍历当前目录下的每个元素,如果是文件就打印,如果是子目录则再次递归。
阅读全文