利用java获取某个文件夹下的所有文件
一.前言
在我们平时编写开发文档的时候, 我们会获取到项目文件中的所有子文件来展示我们的源代码所储存的位置, 获取我们项目下的所有文件路径, 这时我们会如何用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获取文件夹所有文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解SpringBoot获得Maven-pom中版本号和编译时间戳
这篇文章主要介绍了详解SpringBoot获得Maven-pom中版本号和编译时间戳,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-01-01idea中service或者mapper引入报红的问题及解决
在使用IntelliJ IDEA开发SpringBoot项目时,有时会遇到Service或Mapper接口引入时报红但不影响项目运行的情况,这主要是因为IDEA的检查级别设置问题,解决方法是将有问题的Error级别改为编译通过的安全级别,即可消除报红2024-09-09关于jd-gui启动报This program requires Java 1.8+的错误问题及解决方法
最近,在Mac使用上JD-GUI启动时总是报错,接下来通过本文给大家介绍关于jd-gui启动报this program requires Java 1.8+的错误问题及解决方法,需要的朋友可以参考下2022-05-05
最新评论