java读取某个文件夹中的全部文件(包括子文件夹)
主要思路
使用file.listFiles()函数可以获取到某文件夹下的所有文件信息,如果需要访问子文件夹下的文件,则需要对获取到的文件信息进行递归遍历,如果是目录则继续统计,如果是文件则加入文件列表中
示例
例如我想读取该java项目中所有的文件(包括子文件夹中的文件)
则将第十一行的basePath修改为该文件夹所在路径,运行结果如下图所示
代码
package cn.edu.xjtu; import java.io.File; import java.util.ArrayList; import java.util.List; public class test { public static void main(String[] args) { String basePath = "D:\code\java\typoraImgTypeTrans"; File dir = new File(basePath); List<File> allFileList = new ArrayList<>(); // 判断文件夹是否存在 if (!dir.exists()) { System.out.println("目录不存在"); return; } getAllFile(dir, allFileList); for (File file : allFileList) { System.out.println(file.getName()); } System.out.println("该文件夹下共有" + allFileList.size() + "个文件"); } public static void getAllFile(File fileInput, List<File> allFileList) { // 获取文件列表 File[] fileList = fileInput.listFiles(); assert fileList != null; for (File file : fileList) { if (file.isDirectory()) { // 递归处理文件夹 // 如果不想统计子文件夹则可以将下一行注释掉 getAllFile(file, allFileList); } else { // 如果是文件则将其加入到文件数组中 allFileList.add(file); } } } }