当前位置: 移动技术网 > IT编程>开发语言>Java > Java遍历输出指定目录、树形结构所有文件包括子目录下的文件

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

下面通过一段代码介绍下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);
  }
 }

输出结果如下:

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网