java如何读取某个文件夹中的全部文件(包括子文件夹)

 更新时间:2022年12月03日 15:11:55   作者:Hydrion-Qlz  
这篇文章主要介绍了java如何读取某个文件夹中的全部文件(包括子文件夹),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java读取某个文件夹中的全部文件

主要思路

使用file.listFiles()函数可以获取到某文件夹下的所有文件信息,如果需要访问子文件夹下的文件,则需要对获取到的文件信息进行递归遍历,如果是目录则继续统计,如果是文件则加入文件列表中

示例

例如我想读取该java项目中所有的文件(包括子文件夹中的文件)

image-

则将第十一行的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;
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot FeignClient注解及参数

    springboot FeignClient注解及参数

    这篇文章主要介绍了springboot FeignClient注解及参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 详解SpringCloud是如何动态更新配置的

    详解SpringCloud是如何动态更新配置的

    spring cloud在config配置管理的基础上,提供了consul config的配置管理和动态监听,那么这里面到底是怎样实现的,本文将为你揭秘,感兴趣的小伙伴可以跟着小伙伴一起来学习
    2023-06-06
  • Java Unsafe学习笔记分享

    Java Unsafe学习笔记分享

    今天小编就为大家分享一篇Java Unsafe学习笔记,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Activiti进阶之组任务实现示例详解

    Activiti进阶之组任务实现示例详解

    这篇文章主要为大家介绍了Activiti进阶之组任务实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • java语言求解兔子问题代码分析

    java语言求解兔子问题代码分析

    这篇文章主要介绍了Java语言求解兔子问题代码分析,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • 总结Java集合类操作优化经验

    总结Java集合类操作优化经验

    本文主要介绍的就是集合框架的使用经验,告诉大家如何高效、方便地管理对象,所有代码基于JDK7,需要的朋友可以参考下
    2015-08-08
  • Java线程通信详解

    Java线程通信详解

    本篇文章主要介绍了Java线程通信问题,线程通信用来保证线程协调运行,有需要的朋友可以了解一下。
    2016-10-10
  • mybatis的if判断不要使用boolean值的说明

    mybatis的if判断不要使用boolean值的说明

    这篇文章主要介绍了mybatis的if判断不要使用boolean值的说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • java写的伪微信红包功能示例代码

    java写的伪微信红包功能示例代码

    这篇文章主要介绍了java写的伪微信红包功能示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 一篇文章带你了解spring事务失效的多种场景

    一篇文章带你了解spring事务失效的多种场景

    在日常编码过程中常常涉及到事务,在前两天看到一篇文章提到了Spring事务,那么在此总结下在Spring环境下事务失效的几种原因.
    2021-09-09

最新评论