利用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获取文件夹所有文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Kotlin 基本语法实例详解

    Kotlin 基本语法实例详解

    这篇文章主要介绍了Kotlin 基本语法实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • SpringBoot整合MyBatis四种常用的分页方式(详细总结)

    SpringBoot整合MyBatis四种常用的分页方式(详细总结)

    这篇文章详细给大家总结了SpringBoot整合MyBatis四种常用的分页方式,文中通过代码示例为大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • springboot登陆页面图片验证码简单的web项目实现

    springboot登陆页面图片验证码简单的web项目实现

    这篇文章主要介绍了springboot登陆页面图片验证码简单的web项目实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 详谈JSON与Javabean转换的几种形式

    详谈JSON与Javabean转换的几种形式

    下面小编就为大家带来一篇详谈JSON与Javabean转换的几种形式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • spring Boot 应用通过Docker 来实现构建、运行、发布流程

    spring Boot 应用通过Docker 来实现构建、运行、发布流程

    这篇文章主要介绍了spring Boot 应用通过Docker 来实现构建、运行、发布流程,图文详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • Java对象数组的添加、删除和遍历代码示例

    Java对象数组的添加、删除和遍历代码示例

    在Java编程中,我们经常需要对数据结构进行遍历操作,并根据业务需求删除部分元素,这篇文章主要给大家介绍了关于Java对象数组的添加、删除和遍历的相关资料,需要的朋友可以参考下
    2024-04-04
  • BaseDao封装JavaWeb的增删改查的实现代码

    BaseDao封装JavaWeb的增删改查的实现代码

    Basedao 是一种基于数据访问对象(Data Access Object)模式的设计方法,它是一个用于处理数据库操作的基础类,负责封装数据库访问的底层操作,提供通用的数据库访问方法,本文给大家介绍了BaseDao封装JavaWeb的增删改查的实现代码,需要的朋友可以参考下
    2024-03-03
  • springboot整合redis进行数据操作(推荐)

    springboot整合redis进行数据操作(推荐)

    springboot整合redis比较简单,并且使用redistemplate可以让我们更加方便的对数据进行操作。下面通过本文给大家分享springboot整合redis进行数据操作的相关知识,感兴趣的朋友一起看看吧
    2017-10-10
  • SpringBoot集成OAuth2.0的实现示例

    SpringBoot集成OAuth2.0的实现示例

    OAuth2.0是安全授权协议,通过访问令牌替代密码,保障用户数据安全,适用于社交登录、第三方数据访问等场景,下面就来介绍一下SpringBoot集成OAuth2.0,感兴趣的可以了解一下
    2025-06-06
  • 使用ShardingJDBC进行数据分片以及读写分离

    使用ShardingJDBC进行数据分片以及读写分离

    ShardingJDBC是一个轻量级的Java框架,提供了数据分片、读写分离、分布式主键生成等数据访问功能,本文将给大家介绍如何使用ShardingJDBC进行数据分片以及读写分离,需要的朋友可以参考下
    2024-01-01

最新评论