java写一个程序,找到指定文件夹下面的所有文件、子文件夹。如果子文件夹下面还有文件或文件夹也要找出来。
时间: 2024-10-14 10:17:06 浏览: 34
在Java中,你可以使用`java.io.File`和`java.nio.file`包下的类来遍历文件系统并查找指定目录下的所有文件和子目录。这里是一个简单的示例,展示如何递归地查找:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileScanner {
public static void main(String[] args) {
// 指定需要搜索的根目录
String rootDirectory = "/path/to/your/directory"; // 替换为你实际的目录路径
List<File> filesAndDirectories = findFiles(rootDirectory);
for (File file : filesAndDirectories) {
System.out.println(file.getAbsolutePath());
}
}
/**
* 使用递归函数查找指定目录下的所有文件和子目录
*/
private static List<File> findFiles(String directoryPath) {
List<File> fileList = new ArrayList<>();
File dir = new File(directoryPath);
if (!dir.exists() || !dir.isDirectory()) {
throw new IllegalArgumentException("Invalid directory path");
}
File[] children = dir.listFiles();
if (children != null) {
for (File child : children) {
fileList.add(child);
// 如果当前元素是文件夹,继续递归搜索
if (child.isDirectory()) {
fileList.addAll(findFiles(child.getAbsolutePath()));
}
}
}
return fileList;
}
}
```
在这个程序中,我们首先创建一个`File`对象表示目标目录,然后检查它是否存在且是否是目录。接着,我们获取该目录下的所有文件和子目录,并将它们添加到结果列表中。对于每个子目录,我们会再次递归调用`findFiles`方法。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![text/x-java](https://img-home.csdnimg.cn/images/20250102104920.png)
![java](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)