首页 > 编程 > Java > 正文

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

2019-11-26 15:02:00
字体:
来源:转载
供稿:网友

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

输出结果如下:

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表