博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java非递归的方式获取目录中所有文件(包括目录)
阅读量:6716 次
发布时间:2019-06-25

本文共 1648 字,大约阅读时间需要 5 分钟。

零、思路解析

对于给出的文件查看其下面的所有目录,将这个目录下的所有目录放入待遍历的目录集合中,每次取出该集合中的目录遍历,如果是目录再次放入该目录中进行遍历。

一、代码

/**     * 非递归的方式获取目录中的所有文件
* 此方法获取的路径未按照目录->文件方式排列 * * @param dirPath 目录路径 * @return 指定目录下所有文件和目录的集合 */ public static List
listAllFile(String dirPath) { LinkedList
allFiles = new LinkedList<>(); if ("".equals(dirPath) || null == dirPath) { return allFiles; } File file = new File(dirPath); allFiles.add(file);//添加自己 if (file.isFile()) { return allFiles; } File[] fileList = file.listFiles(); if (fileList == null || fileList.length == 0) { return allFiles; } //将第一次获取到的文件和目录放入总集合中 allFiles.addAll(Arrays.asList(fileList)); //声明存放目录的集合 LinkedList
dirCheckList = new LinkedList<>(); //处理第一层目录 for (File curFile : fileList) { if (curFile.isDirectory()) { dirCheckList.add(curFile); } } while (!dirCheckList.isEmpty()) { File removeDir = dirCheckList.removeFirst();//移除首位的目录 File[] removeDirFileList = removeDir.listFiles(); if (removeDirFileList == null) { continue; } //将找出的所有的文件和目录加入到总集合中 allFiles.addAll(Arrays.asList(removeDirFileList)); for (File curFile : removeDirFileList) { if (curFile.isDirectory()) { dirCheckList.add(curFile); } } } return allFiles; }

 

转载于:https://www.cnblogs.com/LiuChunfu/p/6822960.html

你可能感兴趣的文章
Java程序开发中的简单内存分析
查看>>
Java中的Future相关
查看>>
CGAL Catmull-Clark Subdivide Surface
查看>>
赛车入门 -- 专有技术名词
查看>>
接收IWebBrowser2的自动化事件
查看>>
需求入门: 需求工程=需求开发+需求管理
查看>>
androidmanifest.xml权限中文说明
查看>>
matlab练习程序(感知哈希对比图片)
查看>>
多媒体指令(图像灰度化)
查看>>
sqlserver数据库大型应用解决方案总结
查看>>
枚举系统设备
查看>>
C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习
查看>>
在Salesforce中创建Approval Process
查看>>
.NET v2.0 下的高精度计数器 —— Stopwatch [.NET v2.0, C#]
查看>>
Remoting入门实例
查看>>
MongoDB的使用
查看>>
[LeetCode] Meeting Rooms I & II
查看>>
[译]Selenium Python文档:六、页面对象
查看>>
[Windows Azure] How to Scale an Application
查看>>
RC4 in TLS is Broken: Now What?
查看>>