用Java写一个文件夹递归所有文件
时间: 2024-10-18 07:04:22 浏览: 22
在Java中,你可以使用`java.io.File`类及其相关的遍历方法来实现文件夹的递归读取。以下是一个简单的示例,它会递归地获取指定目录下的所有文件:
```java
import java.io.File;
import java.io.FilenameFilter;
public class RecursiveFileReader {
public static void main(String[] args) {
File directory = new File("/path/to/directory"); // 替换为你要读取的实际目录路径
if (directory.exists() && directory.isDirectory()) {
traverseDirectory(directory);
} else {
System.out.println("The directory does not exist or is not a directory.");
}
}
private static void traverseDirectory(File dir) {
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return !name.startsWith(".");
}
};
File[] files = dir.listFiles(filter);
if (files != null) {
for (File file : files) {
if (file.isFile()) {
System.out.println(file.getAbsolutePath()); // 打印文件路径
} else if (file.isDirectory()) {
traverseDirectory(file); // 递归处理子目录
}
}
}
}
}
```
在这个例子中,我们首先检查传入的是否是有效的目录,然后创建一个`FilenameFilter`来过滤掉隐藏文件(通常开始于`.`的文件)。接着遍历目录并打印出每个文件的绝对路径。如果遇到子目录,就继续递归地处理。
阅读全文