Java遍历输出指定目录、树形结构所有文件包括子目录下的文件

 更新时间:2015年07月31日 16:08:58   作者:jenson138  
这篇文章主要介绍了Java遍历输出指定目录、树形结构下的所有文件包括子目录中的文件,需要的朋友可以参考下

下面通过一段代码介绍下Java输出指定目录、树形结构下的所有文件包括子目录中的文件的方法,并附有效果图。


import java.io.File;
 public class ReadDirectory {
  // 文件所在的层数
  private int fileLevel;
  /**
  * 生成输出格式
  * @param name 输出的文件名或目录名
  * @param level 输出的文件名或者目录名所在的层次
  * @return 输出的字符串
  */
  public String createPrintStr(String name, int level) {
   // 输出的前缀
   String printStr = "";
   // 按层次进行缩进
   for (int i = ; i < level; i ++) {
    printStr = printStr + " ";
   }
   printStr = printStr + "- " + name;
   return printStr;
  }
  /**
  * 输出初始给定的目录
  * @param dirPath 给定的目录
  */
  public void printDir(String dirPath){
   // 将给定的目录进行分割
   String[] dirNameList = dirPath.split("\\\\");
   // 设定文件level的base
   fileLevel = dirNameList.length;
   // 按格式输出
   for (int i = ; i < dirNameList.length; i ++) {
    System.out.println(createPrintStr(dirNameList[i], i));
   }
  }
  /**
  * 输出给定目录下的文件,包括子目录中的文件
  * @param dirPath 给定的目录
  */
  public void readFile(String dirPath) {
   // 建立当前目录中文件的File对象
   File file = new File(dirPath);
   // 取得代表目录中所有文件的File对象数组
   File[] list = file.listFiles();
   // 遍历file数组
   for (int i = ; i < list.length; i++) {
    if (list.isDirectory()) {
     System.out.println(createPrintStr(list.getName(), fileLevel));
     fileLevel ++;
     // 递归子目录
     readFile(list.getPath());
     fileLevel --;
    } else {
     System.out.println(createPrintStr(list.getName(), fileLevel));
    }
   }
  }
  public static void main(String[] args) {
   ReadDirectory rd = new ReadDirectory();
   String dirPath = "D:\\有道词典";
   rd.printDir(dirPath);
   rd.readFile(dirPath);
  }
 }

输出结果如下:

以上就是本文的全部内容,希望大家喜欢。

相关文章

  • java中DateUtils时间工具类详解

    java中DateUtils时间工具类详解

    这篇文章主要为大家详细介绍了java中DateUtils时间工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java实现双链表的示例代码

    Java实现双链表的示例代码

    双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。本文将用Java语言实现双链表,需要的可以参考一下
    2022-09-09
  • spring boot请求异常处理并返回对应的html页面

    spring boot请求异常处理并返回对应的html页面

    这篇文章主要介绍了spring boot处理请求异常并返回对应的html页面,包括404异常处理和500异常处理,需要的朋友可以参考下
    2017-07-07
  • Java 中解决Unsupported major.minor version 51.0的问题

    Java 中解决Unsupported major.minor version 51.0的问题

    本文主要介绍解决Unsupported major.minor version 51.0的问题, 这里给大家整理了详细资料,有需要的小伙伴可以参考下
    2016-08-08
  • 关于Java的对象序列化流和反序列化流详细解读

    关于Java的对象序列化流和反序列化流详细解读

    这篇文章主要介绍了关于Java的对象序列化流和反序列化流,对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象,反之,自己序列还可以从文件中读取回来,重构对象,对它进行反序列化,需要的朋友可以参考下
    2023-05-05
  • MyBatis在insert插入操作时返回主键ID的配置(推荐)

    MyBatis在insert插入操作时返回主键ID的配置(推荐)

    这篇文章主要介绍了MyBatis在insert插入操作时返回主键ID的配置的相关资料,需要的朋友可以参考下
    2017-10-10
  • java使用TimerTask定时器获取指定网络数据

    java使用TimerTask定时器获取指定网络数据

    java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks。一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类的方式创建,下面的就用示例来学习他的使用方法
    2014-01-01
  • SpringBoot中间件封装限流器的方案详解

    SpringBoot中间件封装限流器的方案详解

    这篇文章主要介绍了SpringBoot中间件封装限流器,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 详解Java8函数式编程之收集器的应用

    详解Java8函数式编程之收集器的应用

    这篇文章主要介绍了详解Java8函数式编程之收集器的应用,收集器是一种通用的、从流生成复杂值的结构。可以使用它从流中生成List、Set、Map等集合,需要的朋友可以参考下
    2023-04-04
  • 浅谈hibernate中多表映射关系配置

    浅谈hibernate中多表映射关系配置

    下面小编就为大家带来一篇浅谈hibernate中多表映射关系配置。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论