欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-05 11:40:48
下面通过一段代码介绍下java输出指定目录、树形结构下的所有文件包括子目录中的文件的方法,并附有效果图。 import java.io.file; pub...

下面通过一段代码介绍下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遍历输出指定目录、树形结构所有文件包括子目录下的文件

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