java如何读取某个文件夹中的全部文件(包括子文件夹)
短信预约 -IT技能 免费直播动态提醒
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);
}
}
}
}
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;
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341