java完成遍历某个目次(包含子目次)下的一切文件【JAVA教程】,java,遍历,目录,所有文件
作者:搜教程发布时间:2019-12-02分类:JAVA教程浏览:32评论:0
导读:在java中遍历一个文件夹里边的一切文件,能够有两种体式格局:一、递归遍历一般也是开发者第一时间能想到的要领。递归遍历的长处是:完成起来相对简朴,代码量相对较少,...
在java中遍历一个文件夹里边的一切文件,能够有两种体式格局:
一、递归遍历
一般也是开发者第一时间能想到的要领。
递归遍历的长处是:
完成起来相对简朴,代码量相对较少,实行效力较高。
瑕玷是:
比较吃内存,对硬件请求较高。
在线视频教程分享:java在线视频
细致算法以下:
// 递归遍历 private void getDirectory(File file) { File flist[] = file.listFiles(); if (flist == null || flist.length == 0) { return 0; } for (File f : flist) { if (f.isDirectory()) { //这里将列出一切的文件夹 System.out.println("Dir==>" + f.getAbsolutePath()); getDirectory(f); } else { //这里将列出一切的文件 System.out.println("file==>" + f.getAbsolutePath()); } } }
二、非递归遍历
细致思绪:
遍历一个文件夹的时刻,如果是文件夹,就添加到linkedlist里去,如果是文件则列出。如许该目次的文件和文件夹就遍历终了了,文件夹悉数被保留到linkedlist里,所以剩下的就是遍历linkedlist里边的文件夹的文件,遍历体式格局同上边的操纵一致。
如果是文件夹就添加到linkedlist里边,固然每次从列表掏出一个文件夹以后需要从列表中删除该文件夹,这里采纳linkedlist.removeFirst()
来读取,如许是每次读取列表的第一个元素并将其从列表剔除。如许只需遍历到linkedlist的状况是isEmty的时刻就申明遍历终了了。
细致算法以下:
/** * 非递归遍历 * @param file * @return */ public static LinkedList<File> GetDirectory(String path) { File file = new File(path); LinkedList<File> Dirlist = new LinkedList<File>(); // 保留待遍历文件夹的列表 LinkedList<File> fileList = new LinkedList<File>(); GetOneDir(file, Dirlist, fileList);// 挪用遍历文件夹根目次文件的要领 File tmp; while (!Dirlist.isEmpty()) { tmp = (File) Dirlist.removeFirst(); // 从文件夹列表中删除第一个文件夹,并返回该文件夹赋给tmp变量 // 遍历这个文件夹下的一切文件,并把 GetOneDir(tmp, Dirlist, fileList); } return fileList; } // 遍历指定文件夹根目次下的文件 private static void GetOneDir(File file, LinkedList<File> Dirlist, LinkedList<File> fileList) { // 每一个文件夹遍历都邑挪用该要领 File[] files = file.listFiles(); if (files == null || files.length == 0) { return; } for (File f : files) { if (f.isDirectory()) { Dirlist.add(f); } else { // 这里列出当前文件夹根目次下的一切文件,并添加到fileList列表中 fileList.add(f); // System.out.println("file==>" + f); } } }
相干文章教程引荐:java入门教程
以上就是java完成遍历某个目次(包含子目次)下的一切文件的细致内容,更多请关注ki4网别的相干文章!
相关推荐
- java经典面试题集锦(五)_JAVA教程,java,面试题
- java中的换行符是什么_JAVA教程,java,换行符
- Java中变量必须先定义后使用么_JAVA教程,java,变量
- java中怎么定义接口_JAVA教程,java,接口
- java中静态代码块有什么特点_JAVA教程,java,静态代码块
- java中return语句有什么作用_JAVA教程,java,return
- Java对文件的读写操作(图文详解)_JAVA教程,java
- java经典面试题集锦(四)_JAVA教程,java,面试题
- 八种基本数据类型分别是什么?_JAVA教程,java,基本数据类型
- java如何将字符串转为数组_JAVA教程,java,字符串,数组
你 发表评论:
欢迎- JAVA教程排行
-
- 1接口中只能定义常量和抽象方法,对么_JAVA教程,接口,常量,抽象方法
- 2java文件不能删除文件怎么办_JAVA教程,java
- 3系统提示javac:找不到文件_JAVA教程,系统,提示,javac,找不到,文件
- 4java中sleep的用法是什么?_JAVA教程,java,sleep
- 5java后台乱码怎么办_JAVA教程,java
- 6java图片显示不出来怎么办_JAVA教程,java
- 7java eclipse无法运行怎么办_JAVA教程,java
- 8javascript和java的区别是什么_JAVA教程,javascript,java
- 9Java中split()方法怎么用_JAVA教程,java,spilt,用法
- 最新文章
- 广而告之