Java非递归的方式获取目录中所有文件(包括目录)
2017-05-08 00:03
573 查看
零、思路解析
对于给出的文件查看其下面的所有目录,将这个目录下的所有目录放入待遍历的目录集合中,每次取出该集合中的目录遍历,如果是目录再次放入该目录中进行遍历。一、代码
/** * 非递归的方式获取目录中的所有文件<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语言基础(80)——递归获取指定目录下所有的文件
- java 递归获取一个目录下的所有文件路径
- JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件
- 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
- 对指定的目录进行递归获取递归过程所有的java文件的路径。
- JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件
- 列出目录下所有文件包括子目录的文件路径-采用递归方式
- Java利用递归思想遍历指定目录,获取所有的文件
- 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
- java 递归获取一个目录下的所有文件路径
- Java递归获取目录下所有特定后缀文件
- java实现递归删除目录及目录下所有文件,递归和非递归方式都有
- JAVA基础 day22 File类的方法和应用 利用递归获取目录下的所有文件 Properties类的应用(和IO技术结合,存取配置文件) 打印流和合并流等功能类的学习应用 切割文件练习
- java递归遍历获取目录下所有文件
- java递归删除目录下所有文件包括目录
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- 递归遍历某个目录下的所有java文件
- java 文件 读取目录下的所有文件(包括子目录)
- C#递归获取所有目录下的文件信息并生成对应的XML件