package com.gblfy.test;import java.io.File;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;/*** 文件常用工具类** @author gblfy* @description FileUtil* @date 2020/07/03 17:05*/
public class FileUtil {/*** 遍历目录下面的文件夹和文件  第一种* 例如:有多少个文件夹和多少个文件** @param path 文件夹路径* @description 不使用递归的方法调用*/public static List<File> traverseFolder1(String path) {List<File> fileList = new ArrayList<>();int fileNum = 0, folderNum = 0;File file = new File(path);if (file.exists()) {LinkedList<File> list = new LinkedList<File>();File[] files = file.listFiles();for (File file2 : files) {if (file2.isDirectory()) {System.out.println("文件夹:" + file2.getAbsolutePath());list.add(file2);folderNum++;} else {fileList.add(file2);System.out.println("文件:" + file2.getAbsolutePath());fileNum++;}}File temp_file;while (!list.isEmpty()) {temp_file = list.removeFirst();files = temp_file.listFiles();for (File file2 : files) {if (file2.isDirectory()) {System.out.println("文件夹:" + file2.getAbsolutePath());list.add(file2);folderNum++;} else {fileList.add(file2);System.out.println("文件:" + file2.getAbsolutePath());fileNum++;}}}} else {System.out.println("文件不存在!");}System.out.println("文件夹共有:" + folderNum + ",文件共有:" + fileNum);return fileList;}/*** 遍历目录下面的文件夹和文件  第二种** @param path 文件夹路径* @description 使用递归的方法调用*/public static List<File> traverseFolder2(String path) {List<File> fileList = new ArrayList<>();File file = new File(path);if (file.exists()) {File[] files = file.listFiles();if (null == files || files.length == 0) {System.out.println("文件夹是空的!");return null;} else {for (File file2 : files) {if (file2.isDirectory()) {System.out.println("文件夹:" + file2.getAbsolutePath());traverseFolder2(file2.getAbsolutePath());} else {fileList.add(file2);System.out.println("文件:" + file2.getAbsolutePath());}}}} else {System.out.println("文件不存在!");}return fileList;}/*** 遍历目录下面的文件夹和文件(有返回值+可以后续处理)** @param path 文件夹路径* @description 使用递归的方法调用,并判断文件名是否以.jpg结尾*/public static List<File> getFileListAndReturn(String path) {List<File> fileList = new ArrayList<>();File dir = new File(path);// 该文件目录下文件全部放入数组File[] files = dir.listFiles();if (files != null) {for (int i = 0; i < files.length; i++) {String fileName = files[i].getName();// 判断是文件还是文件夹if (files[i].isDirectory()) {// 获取文件绝对路径getFileListAndReturn(files[i].getAbsolutePath());// 判断文件名是否以.jpg结尾} else if (fileName.endsWith(".jpg")) {String strFileName = files[i].getAbsolutePath();System.out.println("文件名:" + strFileName);fileList.add(files[i]);} else {continue;}}}return fileList;}/*** 遍历目录下面的文件夹和文件(无返回值)** @param path 文件夹路径* @description 使用递归的方法调用,并判断文件名是否以.jpg结尾*/public static void getFileListNotReturn(String path) {File dir = new File(path);// 该文件目录下文件全部放入数组File[] files = dir.listFiles();if (files != null) {for (int i = 0; i < files.length; i++) {String fileName = files[i].getName();// 判断是文件还是文件夹if (files[i].isDirectory()) {// 获取文件绝对路径getFileListNotReturn(files[i].getAbsolutePath());// 判断文件名是否以.jpg结尾} else if (fileName.endsWith(".jpg")) {String strFileName = files[i].getAbsolutePath();System.out.println("文件名:" + strFileName);} else {continue;}}}}public static void main(String[] args) {String srcImgPath = "D:\\1\\srcImgPath\\";//1.traverseFolder1(srcImgPath);//2.traverseFolder2(srcImgPath);//3.getFileListAndReturn(srcImgPath);//4.getFileListNotReturn(srcImgPath);}
}

java实现遍历文件夹下的文件及文件夹相关推荐

  1. java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)

    这2个工具类都推荐使用统一个场景的不通过写法 推荐第一种 package com.gblfy.test;import java.io.BufferedInputStream; import java. ...

  2. windows中遍历指定文件夹下的所有子文件夹

    前面我给出了windows下面指定文件夹下面指定类型文件的遍历程序,这里,再给出遍历指定文件夹下的所有子文件夹的程序: #include "stdafx.h" #include & ...

  3. shell脚本:遍历指定文件夹下.jar后缀的文件,并备份到目标文件夹

    shell脚本:遍历指定文件夹下.jar后缀的文件,并备份到目标文件夹 批量备份源文件夹下的所有jar包 并用原名+日期时间重命名 过程如下: 创建一个sh文件: vim test.sh 按 i 进入 ...

  4. java读取文件夹下的所有txt文件,java读取文件夹下文件及txt内容

    public class PositionController { // 读取txt内容 public static String txt2String(File file) { StringBuil ...

  5. android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

    简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...

  6. python 导入csv文件到oracle_python将文件夹下的所有csv文件存入mysql和oracle数据库

    #oracle版 首先新建python脚本(d:/python/orclImport.py) import os #引入os包 if __name__ == '__main__': #遍历文件夹下所有 ...

  7. python3指定目录所有excel_Python——合并指定文件夹下的所有excel文件

    前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...

  8. Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略

    Python语言学习:创建/删除文件/文件夹.获取当前文件/文件夹路径(系统环境路径/目录).获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略 目录 系统环境路径的设置 1.sys ...

  9. android 7 创建文件夹,Android 在 res/layout 文件夹 下创建一个 子文件夹实例

    Android 资源文件夹 Layout 文件夹 Layout 文件是存放Android的布局文件的资源文件夹,但是如果你想要在里面创建子文件夹,你会发现xml文件报错. 如何在Layout文件夹下方 ...

  10. [Windowns C]递归遍历指定目录下的子目录和文件

    /* 功能:演示了利用C语言递归遍历指定目录下的子目录和文件! 说明:经修改也可以搜索文件名符合特定格式的文件,如修改"\\*.*"为"\\*.log" */ ...

最新文章

  1. 一文教会你三维网格物体识别
  2. 如何注册域名-买服务器-备案-建设网站
  3. 有什么值得推荐的Java Web练手项目?
  4. [Flexbox] Using order to rearrange flexbox children
  5. r语言error in match.fun(fun) :_Go语言200行写区块链源代码分析
  6. php电商网站开发流程图,php网上购物平台设计+ER图+流程图.doc
  7. php文件夹重命名,PHP自动重命名文件实现方法
  8. scrapy使用selenium抓取深圳证券交易所考评表数据
  9. Flume之Source
  10. JavaScript学习(四十)—字面量创建对象图解
  11. Cocos2d-x-3.0rc0创建新项目
  12. 史秀峰计算机网络技术与应用第二版,史秀峰版《计算机网络技术与应用》期中测试.doc...
  13. controlleradvice 参数_Spring mvc中@ModelAttribute和@ControllerAdvice使用
  14. JAVA语法——n的阶乘(高级)
  15. raw图片python医学影像的格式转换
  16. indesign怎么拼图_【英语陪玩33】 拼图 Jigsaw Puzzle
  17. web前端开发期末大作业 ——个人主页(可自取源码)
  18. 心电电路算法滤波_心电仪滤波
  19. 项目管理概念——projects、programs、portfolio、operations以及OPM
  20. 【论文研读】-Thread-level transactional memory(TTM)

热门文章

  1. 假如不穿宇航服,人在各大星球能活多久?
  2. 大学教授撰写诗歌引人思考:美好人生怎能终止在17岁?
  3. 科学的分析猪八戒到底是什么猪,黑猪还是白猪?
  4. SAE助力「海底小纵队学英语」全面拥抱Serverless,节省25%以上成本
  5. QuickBI助你成为分析师——搞定数据源
  6. iOS KVO crash 自修复技术实现与原理解析
  7. 2017双11技术揭秘—千亿级流量来袭,如何用硬件加速技术为CPU减负?
  8. 移动云TeaTalk:这是一场云数据库技术的深度对话!
  9. 极道创始人吴江:企业级数据系统,初创一样可以做出好产品
  10. 推出超低功耗数字式热释电传感器,翠展微电子厉害了……