Java非递归的方式获取目录中所有文件(包括目录)
零、思路解析
对于给出的文件查看其下面的所有目录,将这个目录下的所有目录放入待遍历的目录集合中,每次取出该集合中的目录遍历,如果是目录再次放入该目录中进行遍历。
一、代码
/**
* 非递归的方式获取目录中的所有文件<br>
* 此方法获取的路径未按照目录->文件方式排列
*
* @param dirPath 目录路径
* @return 指定目录下所有文件和目录的集合
*/
public static List<File> listAllFile(String dirPath) {
LinkedList<File> 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<File> 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;
}
Java非递归的方式获取目录中所有文件(包括目录)的更多相关文章
- Java 非递归实现 二叉树的前中后遍历以及层级遍历
class MyBinaryTree<T> { BinaryNode<T> root; public MyBinaryTree() { root = new BinaryNod ...
- gradle 删除指定目录中的文件和目录
// 删除bakAPk下的所有非母包文件 task deleTask(type: Delete){ FileTree tree = fileTree(dir: bakPath) tree.each { ...
- 18-Ubuntu-文件和目录命令-创建文件和目录-touch和mkdir
1.touch 创建文件或修改文件时间 (1)如果文件不存在,可以创建一个空白文件 例: 创建空白文件01.txt touch 01.txt (2)如果文件已经存在,可以修改文件的末次修改时间 例: ...
- Java学习-040-级联删除目录中的文件、目录
之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除.网上找了一些方法,也找了一些粉碎机,都没能达到 ...
- Java中移动文件或目录的方法盘点
本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:Java中移动文件或目录的方法盘点: import org.apache.commons.io.FileUtils; import jav ...
- find - 递归地在层次目录中处理文件
总览 SYNOPSIS find [path...] [expression] 描述 DESCRIPTION 这个文档是GNU版本 find 命令的使用手册. find 搜索目录树上的每一个文件名,它 ...
- Python中的文件和目录操作实现
Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...
- HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)
参考文献: http://bbs.csdn.net/topics/390952011 http://blog.csdn.net/ljj_9/article/details/53306468 1.下载地 ...
- File类之在指定目录中查找文件
package IoDemo; import java.io.File; /** * @Title:FileDemo2 * @Description:在指定的目录中查找文件 * @author Cra ...
随机推荐
- Win10+VMplayer12中U盘无法挂载解决
VMplayer 中运行mac osx,想挂载个U盘进去,无奈居然一直挂载不进去,而此时宿主机Win10中的U盘也消失,查看设备管理器居然显示"未知设备" 于是乎一顿度娘,网上的方 ...
- FireFox在新标签中打开搜索结果
原文:https://jingyan.baidu.com/article/20b68a88563a1b796cec6228.html 步骤如下: (1)在浏览器的地址栏输入:about:config, ...
- Java后端测试概述
[本文出自天外归云的博客园] 多种单测技术 1. 要学会Spring MVC/Boot测试中自带的mock方法. 2. 学会junit中的方法,对于注解的使用等. 3. 学会使用结合第三方Mockit ...
- ParseUrl
#!/usr/bin/python # coding:utf-8 import re import urlparse # 解析url def ParseUrl(url): if not re.sear ...
- Nginx+Tomcat搭建高性能负载均衡集群(转)
转载自:http://blog.csdn.net/wang379275614/article/details/47778201 一. 工具 nginx-1.8.0 apache-tomca ...
- Mysql 优化,慢查询
最近项目上遇到点问题,服务器出现连接超时.上次也是超时,问题定位到mongodb上,那次我修改好了,这次发现应该不是这个的问题了. 初步怀疑是mysql这边出问题了,写的sql没经过压力测试,导致用户 ...
- [转]看懂Oracle执行计划
原文地址:https://www.cnblogs.com/Dreamer-1/p/6076440.html 一:什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问路径 ...
- Hibernate 查询说明
1.Criteria setFetchSize实际上与分页操作并没有关系,它的作用是在查询中进行分批数据返回,其中的值就是每次分批查询的记录数,主要是为了提高查询性能的. 举个例子来说:如果你这次查询 ...
- CentOS服务器简单判断CC攻击的命令
使用下面的命令,可以分析下是否在被CC攻击. 第一条命令: tcpdump -s0 -A -n -i any | grep -o -E '(GET|POST|HEAD) .*' 正常的输出结果类似 ...
- w3svc无法启动
w3svc无法启动 运行命令regedit,打开注册表编辑器,进入:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP]: a) Cha ...