遍历获取文件夹下的所有文件
遍历获取文件夹下的所有文件
递归思路:(核心:判断当前路径是文件夹,则递归方法)
判断参数path路径是否存在;
判断参数path路径是否是文件路径;
判断参数path是否是空文件夹;
遍历当前文件夹,如果是文件夹则递归方法,如果是文件夹,则将文件加入到结果集resultList。
非递归思路:(核心:判断当前路径是文件夹,则将当前路径加入到需要遍历的LinkedList队列)
判断参数path路径是否存在;
判断参数path路径是否是文件路径;
判断参数path是否是空文件夹;
遍历当前文件夹,如果是文件夹则将文件夹路径加入到LinkedList队列,否则是文件,将文件加入到结果集resultList。
递归方式
/*** 遍历文件夹下的所有文件(递归方式)* @param path 路径(支持文件夹路径,也支持文件路径。如果path是文件夹路径,则返回该文件夹下的所有文件路径;如果path是文件路径,则返回该文件路径)* @param resultList 返回所有文件 list*/
private static void traverFolder2(String path, List<String> resultList) {File file = new File(path);// 判断参数path,路径是否存在if (! file.exists()) {System.out.println(String.format("路径[%s]不存在。", path));}// 判断参数path,是否是文件(只在第一次调用该方法时有用,第二次递归进入该方法,肯定不是文件,而是文件夹)if (file.isFile()) {resultList.add(file.getAbsolutePath());return;}// 判断参数apth, 是否是空文件夹File[] files = file.listFiles();if (files == null) {System.out.println(String.format("路径[%s]是一个空文件夹。", path));}// 遍历,递归for (File file1 : files) {if (file1.isDirectory()) {System.out.println(String.format("文件夹:%s", file1.getAbsolutePath()));traverFolder2(file1.getAbsolutePath(), resultList);} else {System.out.println(String.format("文件:%s", file1.getAbsolutePath()));resultList.add(file1.getAbsolutePath());}}
}public static void main(String[] args) {String path = "D:\\file\\awen";// 遍历文件夹下的所有文件(递归方式)List<String> resultList = new ArrayList<>();traverFolder2(path, resultList);System.out.println("文件数量: " + resultList.size() + " resultList: " + resultList);
}
非递归方式
/*** 遍历文件夹下的所有文件(非递归方式)* @param path 路径(支持文件夹路径,也支持文件路径。如果path是文件夹路径,则返回该文件夹下的所有文件路径;如果path是文件路径,则返回该文件路径)* @return 返回所有文件 resultList*/
private static List<String> traverFolder1(String path) {// folderNum 文件夹数量 fileNum 文件数量int folderNum = 0, fileNum = 0;// 所有文件存入 resultListList<String> resultList = new ArrayList<>();// 将目录下的文件/文件夹放入listLinkedList<File> list = new LinkedList<>();File file = new File(path);// 判断参数path,路径是否存在if (! file.exists()) {System.out.println(String.format("路径[%s]不存在。", path));return resultList;}// 判断参数path,是否是文件if (file.isFile()) {resultList.add(file.getAbsolutePath());fileNum++;System.out.println("文件夹数量:" + folderNum + ",文件数量:" + fileNum);return resultList;}// 判断参数path,是否是空文件夹if (file.listFiles() == null) {System.out.println(String.format("路径[%s]是一个空文件夹。", path));return resultList;}// 如果该路径下有文件/文件夹,则加入队列listlist.addAll(Arrays.asList(file.listFiles()));// 如果list不为空,遍历while (!list.isEmpty()) {File file1 = list.removeFirst();if (file1.exists() && file1.isFile()) {resultList.add(file1.getAbsolutePath());System.out.println(String.format("文件:%s", file1.getAbsolutePath()));fileNum++;continue;}File[] files = file1.listFiles();if (files == null) {continue;} else {System.out.println(String.format("文件夹:%s", file1.getAbsolutePath()));folderNum++;}for (File f : files) {if (f.isDirectory()) {System.out.println(String.format("文件夹:%s", f.getAbsolutePath()));list.add(f);folderNum++;} else {System.out.println(String.format("文件:%s", f.getAbsolutePath()));resultList.add(f.getAbsolutePath());fileNum++;}}}System.out.println("文件夹数量:" + folderNum + ",文件数量:" + fileNum);System.out.println("resultList: " + resultList);return resultList;
}public static void main(String[] args) {String path = "D:\\file\\awen";// 遍历文件夹下的所有文件(非递归方式)List<String> list = traverFolder1(path);
}
遍历获取文件夹下的所有文件相关推荐
- python遍历指定文件夹的所有文件_python 统计指定文件夹下所有的文件数量,BFS方式...
python 统计指定文件夹下所有的文件数量 本来一直是有这个需求,只是以前写的是递归的方式处理,感觉对资源的占用不友好,而且python的最大递归深度不超过1000,所以改了一下,这里用广度优先遍历 ...
- android 获取文件夹下的所有文件
昨天,在做工作时,需要遍历所有一个文件夹下的所有文件夹,当时自己也不知道怎么做,后来在网上搜索了一些资料,发现其实也很简单. 1.获取SD是否可以读写,如果可以,则传入文件的路径 /*读取输入的某个文 ...
- java 文件 递归_JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)
JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...
- 遍历读取文件夹下的所有文件
遍历读取文件夹下的所有文件 例如,读取文件夹下,子文件夹的所有的jpg文件: import glob path = "./database/20230302/night/*/*.jpg&qu ...
- c语言 遍历文件夹中所有文件名,C# 遍历文件夹下所有子文件夹中的文件,得到文件名...
假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中 using System.Data; using System.Drawing; using System.Linq; using ...
- java遍历文件夹下的_Java遍历文件夹下的所以文件
利用Java递归遍历文件夹下的所以文件,然后对文件进行其他的操作.如:对文件进行重命名,对某一类文件进行重编码.可以对某一工程下的全部.java文件进行转码成utf-8等 代码如下,这里只对文件进行重 ...
- 获取文件夹下的所有文件,并将对应格式文件复制移动到对应文件夹[学生信息收集和处理]
import os import shutil 遍历所有文件夹,获取对应格式的文件数据,并复制整理到不同的文件夹 def GetDirectory(path):""":p ...
- C#遍历得到指定文件夹下的所有文件和子文件夹
1.遍历指定文件夹下的所有文件 string path = Application.StartupPath + "\\data\\采集数据\\"; DirectoryInfo ro ...
- python批量生成文件夹_python实现批量获取指定文件夹下的所有文件的厂
本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import ...
- 利用python批量查询企业信息_python实现批量获取指定文件夹下的所有文件的厂商信息...
本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import ...
最新文章
- access导出MySQL表格_如何将Access数据库里的表内容导出到Excel
- 现在的位置就是对的啊,意思就是当鼠标放上去的时候,停止滚动,鼠标离开,继续滚动(跑马灯项目功能)...
- wxWidgets利用透明图片自定义工具条
- [转载]MVC、MVP以及Model2(下)
- 行业网站设计策划书_怎么把金融行业网站设计排版做到符合用户体验?
- VTK:PCA用法实战
- php二维数组中的查找,PHP实现二维数组中的查找算法小结
- 《朝花夕拾》金句摘抄(六)
- Windows下搭建GCC + Eclipse + OpenOCD的ARM开发环境
- 容器技术Docker K8s 27 容器服务ACK基础与进阶-监控管理
- jQuery基础(鼠标事件,表单事件,键盘事件,自定义事件 篇)
- Windows Phone开发之 WebClient 讲解
- iOS动画之CAAnimation
- zqoj 1819: 加加加!(油) 【水题】【郑大校赛】
- 云南省计算机考研排名,考研云南有哪些大学排名
- CSU——1043克里莫
- nim语言教程(一)
- 多因子策略-APT模型
- wps一直显示正在备份怎么办_wps一直显示正在保存
- [禅悟人生]生活中的烦恼, 一笑了之