JAVA通过递归调用实现,列出一个目录及其子目录下的所有文件。
时间: 2024-12-24 16:30:08 浏览: 20
在Java中,你可以使用递归函数来遍历目录及其子目录,并打印出所有的文件。这里是一个简单的示例,假设我们有一个`File`对象代表当前目录:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class DirectoryTraversal {
public static void listFilesRecursively(File directory) {
if (directory.isDirectory()) {
// 如果是目录
File[] files = directory.listFiles();
if (files != null) {
List<String> fileList = new ArrayList<>();
for (File file : files) {
if (file.isFile()) {
// 如果是文件,添加到列表并打印
fileList.add(file.getName());
System.out.println("找到文件: " + file.getAbsolutePath());
} else {
// 递归处理子目录
listFilesRecursively(file);
}
}
}
} else {
// 如果是文件直接打印
System.out.println("找到文件: " + directory.getAbsolutePath());
}
}
public static void main(String[] args) {
File directory = new File("/path/to/directory"); // 替换为你想要遍历的实际目录路径
listFilesRecursively(directory);
}
}
```
在这个例子中,`listFilesRecursively`方法会持续检查每个元素是否是目录,如果是,就递归地遍历其内容;如果不是目录,则认为它是文件并打印出来。
阅读全文