Java读取某个文件夹中的全部文件包括子文件夹,可以通过以下步骤实现:
- 获取要读取的文件夹路径
- 创建文件对象
- 遍历文件夹及其子文件夹中的所有文件,并将文件路径存储在List中
以下是完整的Java读取某个文件夹中的全部文件包括子文件夹的示例代码:
示例1:使用递归方法实现
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileUtil {
/**
* 获取某个文件夹中的全部文件路径包括子文件夹
*
* @param folderPath 文件夹路径
* @return List<String> 文件路径列表
*/
public static List<String> getAllFiles(String folderPath) {
List<String> filePathList = new ArrayList<>();
File folder = new File(folderPath);
if (!folder.exists() || !folder.isDirectory()) {
return filePathList;
}
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
filePathList.addAll(getAllFiles(file.getAbsolutePath()));
} else {
filePathList.add(file.getAbsolutePath());
}
}
}
return filePathList;
}
}
示例2:使用Java8的流式 API
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class FileUtil {
/**
* 获取某个文件夹中的全部文件路径包括子文件夹
*
* @param folderPath 文件夹路径
* @return List<String> 文件路径列表
*/
public static List<String> getAllFiles(String folderPath) {
List<String> filePathList = new ArrayList<>();
File folder = new File(folderPath);
if (!folder.exists() || !folder.isDirectory()) {
return filePathList;
}
filePathList = getAllFiles(folder).stream().map(File::getAbsolutePath).collect(Collectors.toList());
return filePathList;
}
private static List<File> getAllFiles(File folder) {
List<File> fileList = new ArrayList<>();
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
fileList.addAll(getAllFiles(file));
} else {
fileList.add(file);
}
}
}
return fileList;
}
}
以上两个示例均可以通过调用getAllFiles方法获取文件夹中的所有文件路径,示例1使用递归实现,示例2使用了Java8的流式API。可以根据需求自行选择不同的实现方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java如何读取某个文件夹中的全部文件(包括子文件夹) - Python技术站