帮我用java 递归获取 文件夹下面的所有子文件列表和文件夹列表
时间: 2023-06-05 10:05:22 浏览: 185
好的,这个问题是可以回答的。以下是Java递归获取文件夹下子文件列表和文件夹列表的示例代码:
```java
import java.io.File;
public class FileListDemo {
public static void main(String[] args) {
String path = "C:\\test"; // 文件夹路径
File file = new File(path);
show(file);
}
public static void show(File file) {
if (file.isDirectory()) {
System.out.println("文件夹:" + file.getAbsolutePath());
File[] files = file.listFiles();
for (File f : files) {
show(f);
}
} else {
System.out.println("文件:" + file.getAbsolutePath());
}
}
}
```
这个程序会输出指定文件夹下所有子文件和文件夹的路径。如果你希望保存下这些文件路径列表,可以将输出改为将路径信息存储到一个List或Map中。
相关问题
java实现获取文件夹下所有文件及子文件夹的文件
在Java中,你可以使用`java.io.File`类以及其提供的遍历方法来获取文件夹下的所有文件和子文件夹。这里有一个基本的例子,展示如何递归地搜索目录:
```java
import java.io.*;
import java.nio.file.*;
public class ListFiles {
public static void main(String[] args) {
File directory = new File("/path/to/your/directory"); // 替换为你要搜索的目录路径
if (directory.exists() && directory.isDirectory()) {
// 使用Files.walk()方法,它会递归地访问目录及其子目录
Files.walk(directory.toPath())
.forEach(file -> {
if (file.isRegularFile()) { // 如果是普通文件
System.out.println("文件:" + file.getAbsolutePath());
} else if (file.isDirectory()) { // 如果是子目录
System.out.println("子文件夹:" + file.getAbsolutePath());
}
});
} else {
System.out.println("指定的目录不存在或不是一个目录");
}
}
}
```
这个程序首先检查指定的路径是否是一个存在的目录,然后使用`Files.walk()`方法生成一个迭代器,遍历整个目录结构。如果是普通文件,则打印文件路径;如果是子目录,则打印子目录路径。
用JAVA递归遍历文件夹,并获取到里面的每个 txt 文件
很高兴回答您的问题。以下是用JAVA递归遍历文件夹,并获取到里面的每个 txt 文件的代码示例:
```
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class TraverseFolder {
public static void main(String[] args) {
String folderPath = "C:\\Users\\test\\Desktop\\example_folder";
List<File> txtFiles = new ArrayList<File>();
File folder = new File(folderPath);
traverseFolder(folder, txtFiles);
for (File file : txtFiles) {
System.out.println(file.getPath());
}
}
public static void traverseFolder(File folder, List<File> txtFiles) {
if (folder.isDirectory()) {
File[] files = folder.listFiles();
for (File file : files) {
traverseFolder(file, txtFiles);
}
} else {
if (folder.getName().endsWith(".txt")) {
txtFiles.add(folder);
}
}
}
}
```
当您需要获取一个文件夹里面的所有 txt 文件时,您可以通过调用“traverseFolder”方法递归地遍历所有文件夹和文件,并将 txt 文件路径存储在一个 list 中。通过对 list 遍历,您可以得到所有 txt 文件的路径。希望这个代码示例可以帮助您。
阅读全文