获得 file.listFiles中所有的文件 包括子目录
时间: 2024-02-11 17:04:26 浏览: 25
获取 file.listFiles() 中的所有文件,可以使用递归方法来处理子目录。
以下是一个示例代码:
```
import java.io.File;
public class FileList {
public static void main(String[] args) {
File dir = new File("path/to/directory");
listFiles(dir);
}
public static void listFiles(File dir) {
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
listFiles(file);
} else {
System.out.println(file.getAbsolutePath());
}
}
}
}
}
```
在此示例中,我们定义了一个 `listFiles` 方法来处理文件和子目录。如果传入的 `dir` 是目录,我们使用 `listFiles()` 方法获取该目录中的所有文件和子目录。然后,我们遍历这些文件和目录,并对于每个目录,我们递归调用 `listFiles()` 方法,以获取目录中的文件和子目录。对于每个文件,我们输出其绝对路径。
请注意,当使用递归方法时,需要注意避免无限递归的情况。在此示例中,我们使用了 `if (files != null)` 来检查返回的文件数组是否为 null,以避免在空目录中出现 NPE。