java如何读取某个文件夹中的全部文件(包括子文件夹)
Hydrion-Qlz 人气:0java读取某个文件夹中的全部文件
主要思路
使用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); } } } }
java获取文件夹下指定的文件
/* * 获取指定的文件 * */ private ArrayList<String> GetFiles(String path, String searchPattern, ArrayList<String> filesList) { if (filesList == null) { filesList = new ArrayList<>(); } if (!Strings.isNullOrEmpty(path) && !Strings.isNullOrEmpty(searchPattern)) { try { File f = new File(path); if (f.exists()) { final File[] files = f.listFiles(); for (File file : files) { if (file.isDirectory()) { GetFiles(file.getPath(), searchPattern, filesList); } else if (file.isFile()) { if (file.getName().endsWith(searchPattern)) { filesList.add(file.getPath().toString()); } } } } } catch (Exception ex) { System.out.println(ex.getMessage()); } } return filesList; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容