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 ...
随机推荐
- Ubuntu首次安装后root权限解锁
在ubuntu系统下,为了安全起见,在安装过程中,系统屏蔽了用户设置root用户.导致很多用户在使用过程中不知道root密码到底是什么. 可以使用如下方法解决: 先解除root锁定,为root用户设置 ...
- nexus 手动更改 私服包
替换 linux 私服下的 nexus 目录
- 3. CNN卷积网络-反向更新
1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 如果读者详细的了解了DNN神经网络的反向更新,那对我们今天的学习会有很大的帮助.我们的CNN ...
- Android 日历控件PickTime
最近做项目,需要设置用户的生日,所以做这样一个功能. 开始发觉自带的 DatePicker 很是不好用. 上代码: <DatePicker android:id="@+id/dpPic ...
- CentOS7安装MySQL5.7常见问题
下载与安装 亲测有效: https://www.linuxidc.com/Linux/2016-09/135288.htm 设置MySQL服务开机自启动 注意,CentOS6和7有一点不同:CentO ...
- MapReduce教程(一)基于MapReduce框架开发<转>
1 MapReduce编程 1.1 MapReduce简介 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,用于解决海量数据的计算问题. MapReduce分成了两个部分: ...
- 隐藏的Word快捷键操作
原文地址:http://tieba.baidu.com/p/4163778583 原文来自于: 新文咖从会用电脑开始,Microsoft Office Word就是我们最常用的软件.靠着它,我们写论文 ...
- MFC函数——CWnd::OnEraseBkgnd
CWnd::OnEraseBkgnd afx_msg BOOL OnEraseBkgnd( CDC* pDC ); 返回值: 如果它擦除了背景,则返回非零值:否则返回0. 参数: pDC 指定了设备环 ...
- https://github.com/cobolfoo/gdx-skineditor
https://github.com/cobolfoo/gdx-skineditor A skin editor for libgdx 0.3
- Ubuntu 地址导航栏修改为显示路径及如何恢复原模式?
在Ubuntu中,文件位置默认不是和Windows地址栏一样的(位置项),而是显示是路径名称组合(路径栏),这对于文件路径的获得复制很不方便.比如,获得某个文件德 路径,如果是地址栏,直接复制一下就可 ...