利用java获取某个文件夹下的所有文件

 更新时间:2023年07月05日 09:01:34   作者:十年(Sugar)  
这篇文章主要给大家介绍了关于如何利用java获取某个文件夹下的所有文件的相关资料,在从事web开发工作中,经常需要对本地某一个目录下的文件进行处理,需要的朋友可以参考下

一.前言

在我们平时编写开发文档的时候, 我们会获取到项目文件中的所有子文件来展示我们的源代码所储存的位置, 获取我们项目下的所有文件路径,  这时我们会如何用Java代码来获取我们项目下的所有文件呢, 今天我们来比编写一下代码

二.获取文件夹下的文件路径

在测试类里编写下列代码:

@Test
public void test2() {
        //路径   这里写一个路径进去
        String path="自己项目所在本机路径(全路径)";
        //调用方法
        getFiles(path);
    }
public static void getFiles(String path) {
        File file = new File(path);
        // 如果这个路径是文件夹
        if (file.isDirectory()) {
            // 获取路径下的所有文件
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; i++) {
                // 如果还是文件夹 递归获取里面的文件 文件夹
                if (files[i].isDirectory()) {
                    //System.out.println("目录:" + files[i].getPath());
                    getFiles(files[i].getPath());
                } else {
                    System.out.println("文件:" + files[i].getPath());
                }
            }
        } else {
            System.out.println("文件:" + file.getPath());
        }
    }

执行结果:

 我看网上还有其他的方法, 希望大家留言推荐一下其他方法, 测试完之后将反馈给大家

附:java读取文件夹下所有文件和目录的两种方法

以下2中办法核心都是递归,只不过数据返回的不一样,第一种返回路径、子文件夹、子文件,第二种就是文件路径 可以自由扩展
第一种办法

 public static JSONArray traverseFolder2(String path) {
        JSONArray jsonArray=new JSONArray();
        File file = new File(path);
        if (file.exists()) {//判断文件是否存在
            File[] files = file.listFiles();//获取所有子文件夹
            if (null == files || files.length == 0) {
                System.out.println("文件夹是空的!");
                return null;
            } else {
                List<File> fileList = new ArrayList<>();//存储所有文件
                List<JSONArray> childrens = new ArrayList<>();//存储所有文件夹
                JSONObject jsonObject=new JSONObject();
                jsonObject.put("path",path);
                for (File file2 : files) {
                    if (!file2.isDirectory()) {//判断是否是文件夹
                        fileList.add(file2);
                    } else {
                        childrens.add(traverseFolder2(file2.getAbsolutePath()));
                    }
                }
                jsonObject.put("filelist",fileList);
                jsonObject.put("childrens",childrens);
                jsonArray.add(jsonObject);
            }
        } else {
            System.out.println("文件不存在!");
        }
        return jsonArray;
    }

第二种办法

第一次new一个空集合放进去就好

 public static ArrayList<String> readFiles1(String path, ArrayList<String> fileNameList) {
        File file = new File(path);
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; i++) {
                if (files[i].isDirectory()) {
                    readFiles1(files[i].getPath(), fileNameList);
                } else {
                    String path1 = files[i].getPath();
                    String fileName = path1.substring(path1.lastIndexOf("\\") + 1);
                    fileNameList.add(fileName);
                }
            }
        } else {
            String path1 = file.getPath();
            String fileName = path1.substring(path1.lastIndexOf("\\") + 1);
            fileNameList.add(fileName);
        }
        return fileNameList;
    }

总结

到此这篇关于利用java获取某个文件夹下的所有文件的文章就介绍到这了,更多相关java获取文件夹所有文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入浅出了解happens-before原则

    深入浅出了解happens-before原则

    一提到happens-before原则,就让人有点“丈二和尚摸不着头脑”。这个涵盖了整个JMM中可见性原则的规则,究竟如何理解,把我个人一些理解记录下来。下面可以和小编一起学习
    2019-05-05
  • SpringBoot之Refresh流程的简单说明

    SpringBoot之Refresh流程的简单说明

    这篇文章主要介绍了SpringBoot之Refresh流程的简单说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • java实现CSV文件导入与导出功能

    java实现CSV文件导入与导出功能

    这篇文章主要为大家详细介绍了java实现CSV文件导入与导出,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Java使用设计模式中的代理模式构建项目的实例展示

    Java使用设计模式中的代理模式构建项目的实例展示

    这篇文章主要介绍了Java使用设计模式中的代理模式构建项目的实例展示,代理模式中的代理对象可以在客户端和目标对象之间起到中介的作用,需要的朋友可以参考下
    2016-05-05
  • java eclipse 出现 xxx cannot be resolved to a type 错误解决方法

    java eclipse 出现 xxx cannot be resolved to a type 错误解决方法

    这篇文章主要介绍了java eclipse 出现 xxx cannot be resolved to a type 错误解决方法的相关资料,需要的朋友可以参考下
    2017-03-03
  • SpringBoot资源文件的存放位置设置方式

    SpringBoot资源文件的存放位置设置方式

    这篇文章主要介绍了SpringBoot资源文件的存放位置设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • RocketMQ整合SpringBoot实现生产级二次封装

    RocketMQ整合SpringBoot实现生产级二次封装

    本文主要介绍了RocketMQ整合SpringBoot实现生产级二次封装,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 详解java实践SPI机制及浅析源码

    详解java实践SPI机制及浅析源码

    这篇文章主要介绍了详解java实践SPI机制及浅析源码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • SpringBoot快速构建应用程序方法介绍

    SpringBoot快速构建应用程序方法介绍

    这篇文章主要介绍了SpringBoot快速构建应用程序方法介绍,涉及SpringBoot默认的错误页面,嵌入式Web容器层面的约定和定制等相关内容,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • MyBatis-Plus集成Druid环境搭建的详细教程

    MyBatis-Plus集成Druid环境搭建的详细教程

    这篇文章主要介绍了MyBatis-Plus集成Druid环境搭建的详细教程,需要的朋友可以参考下
    2020-08-08

最新评论