在深度遍历目录时,当有目录就会去继续深度遍历该目录,当遍历完该子目录时,在接着刚才在该父目录的遍历继续遍历。主要涉及递归的思想。

package Filelist;import java.io.File;public class FileDeepList {/*** @param args*/public static void main(String[] args) {File dir = new File("D:\\dir");listFile(dir,0);
//      deleteDir(dir);}public static void deleteDir(File dir) {File[] files = dir.listFiles();for (File file : files) {if (file.isDirectory()) {deleteDir(file);//递归删除} else {System.out.println(file + " : " + file.delete());//删除文件}}System.out.println(dir + " : " + dir.delete());//当遍历完目录内的文件和子目录时。将该目录页删除掉。}/*** 通过传入级数leave参数调用getSpace()函数来使目录层次有缩进效果。* @param dir* @param leave*/public static void listFile(File dir, int leave) {// System.out.println("目录: "+dir.getAbsolutePath());System.out.println(getSpace(leave) + "目录: " + dir.getName());//在遍历目录时先输出目录名称。File[] files = dir.listFiles();leave++;for (int i = 0; i < files.length; i++) {if (files[i].isDirectory())listFile(files[i], leave);//对目录下的目录进行进行递归调用函数自身else// System.out.println("文件: "+files[i].getAbsolutePath());System.out.println(getSpace(leave) + "文件: " + files[i].getName());//打印文件}}private static String getSpace(int leave) {StringBuilder sb = new StringBuilder();sb.append("|--");for (int i = 0; i < leave; i++) {sb.insert(0, "|  ");}return sb.toString();}
}

File对象的深度遍历以及删除练习。相关推荐

  1. php file del 方法,php怎么遍历文件删除指定字符

    php遍历文件删除指定字符的实现方法:首先创建一个PHP示例文件:然后通过"function del($getstr){-}"方法删除指定目录下所有指定文件中指定字符串即可. 本文 ...

  2. JavaScript中Object对象深度遍历

    Object对象深度遍历 支持Object和Array混合型对象遍历.其中用到的对象类型判断方法,详见<JavaScript中Object对象类型判断> // 递归实现 // obj 为父 ...

  3. java 目录的遍历与删除

    ----------------------目录的遍历 package zhi_jie_liu;import java.io.*;public class Example27 {public stat ...

  4. java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合

    复习IO操作,突然想写一个小工具,统计一下电脑里面的Java代码量还有注释率,最开始随手写了一个递归算法,遍历文件夹,比较简单,而且代码层次清晰,相对易于理解,代码如下:(完整代码贴在最后面,前面是功 ...

  5. File 对象 创建,判断,

    import java.io.File; import java.io.IOException;public class FileDemo {public static void main(Strin ...

  6. 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径1...

    import java.util.ArrayList; import java.util.List; // 模块E public class AdjMatrixGraph<E> { pro ...

  7. 递归算法和文件队列算法----实现多级文件夹的遍历,删除和复制操作

    递归算法和文件队列算法,均可实现多级文件夹的遍历.删除.和复制操作.现将这些方法封装在FolderTools工具类中.此外,文件队列的实现还需要类MyQueue<E>. 代码如下: imp ...

  8. File对象和IO流

    目录 1.File对象 1.1file的介绍 1.2创建File对象 1.3增加操作 1.4删除操作 1.5修改操作 1.6查询操作 1.7经典题目: 用的方法的递归调用 2 IO流 2.1IO流介绍 ...

  9. 图的深度遍历 (邻接矩阵)

    知识讲解: 图的遍历分为两种,深度遍历与广度遍历.这里讨论深度遍历. 以上图为例讨论图(图片来自<算法笔记>)的深度遍历: 设图形的顶点数为n. 先从顶点v0开始,用一个数组vis[n]来 ...

最新文章

  1. laravel carbon 格式化日期_Laravel 编码实践分享
  2. 4行CSS实现【表格内容超过一行的部分,用省略号代替】【支持IE6】
  3. UVa 11825 (状压DP) Hackers' Crackdown
  4. springMVC - 之拦截器
  5. 口袋操作系统_全自动阀口袋包装机的发展
  6. 浅说 Rewrite规则简介
  7. Android低功耗蓝牙(BLE)使用详解
  8. 微课|Python列表、字典、集合、字符串对象常用方法串讲
  9. java实现数据结构-堆排序
  10. MVC 发布到 windows2003遇到 'System.Web.WebPages.Razor 错误提示
  11. 从sql2016导出数据库到sql2014
  12. 最详细最好的Multisim模拟电路仿真教程(附视频教程)
  13. OpenCV轮廓相关操作 C++
  14. 优动漫PAINT实用教程——创建自动动作提高效率
  15. 27岁,大专学历,女程序员内心的感受和行业焦虑
  16. html页面图片自动缩放比例,html 图片按比例缩放
  17. 高什么发,什么并发,高并什么? ? ?
  18. 让家庭机器人成标配,我们还需要等多久?
  19. 读手语图像识别论文笔记
  20. 前端随机生成验证码vuejsvant~element

热门文章

  1. 唯真才能永久--读《十年》
  2. Storm集群安装Version1.0.1开启Kerberos
  3. 记录一次IDEA开发JavaWeb项目时JS中文乱码排错方法
  4. android注册广播两种方式,Android 注册广播的两种方式对比
  5. 服务至上——安擎的待“客”之道
  6. 张首晟教授:区块链让社会变得更加公平 与人工智能的结合令人激动 | IT领袖峰会...
  7. System Center 2016 Data Protection Manager 部署手册
  8. HashMap与ConcurrentHashMap的区别
  9. 很容易学习的JQuery库 : (八) 杂项 noConflict() 方法
  10. 国内域名商.wang总量统计TOP10:新网居亚 地位不稳