zoukankan      html  css  js  c++  java
  • java遍历给定目录,树形结构输出所有文件,包括子目录中的文件

    (转自:http://blog.csdn.net/gangwazi0525/article/details/7569701)

     1 import java.io.File;
     2 
     3 public class ReadDirectory {
     4         // 文件所在的层数
     5         private int fileLevel;
     6 
     7         /**
     8          * 生成输出格式
     9          * @param name 输出的文件名或目录名
    10          * @param level 输出的文件名或者目录名所在的层次
    11          * @return 输出的字符串
    12          */
    13         public String createPrintStr(String name, int level) {
    14                 // 输出的前缀
    15                 String printStr = "";
    16                 // 按层次进行缩进
    17                 for (int i = 0; i < level; i ++) {
    18                         printStr  = printStr + "  ";
    19                 }
    20                 printStr = printStr + "- " + name;
    21                 return printStr;
    22         }
    23 
    24         /**
    25          * 输出初始给定的目录
    26          * @param dirPath 给定的目录
    27          */
    28         public void printDir(String dirPath){
    29                 // 将给定的目录进行分割
    30                 String[] dirNameList = dirPath.split("\\");
    31                 // 设定文件level的base
    32                 fileLevel = dirNameList.length;
    33                 // 按格式输出
    34                 for (int i = 0; i < dirNameList.length; i ++) {
    35                         System.out.println(createPrintStr(dirNameList[i], i));
    36                 }
    37         }
    38 
    39         /**
    40          * 输出给定目录下的文件,包括子目录中的文件
    41          * @param dirPath 给定的目录
    42          */
    43         public void readFile(String dirPath) {
    44                 // 建立当前目录中文件的File对象
    45                 File file = new File(dirPath);
    46                 // 取得代表目录中所有文件的File对象数组
    47                 File[] list = file.listFiles();
    48                 // 遍历file数组
    49                 for (int i = 0; i < list.length; i++) {
    50                         if (list.isDirectory()) {
    51                                 System.out.println(createPrintStr(list.getName(), fileLevel));
    52                                 fileLevel ++;
    53                                 // 递归子目录
    54                                 readFile(list.getPath());
    55                                 fileLevel --;
    56                         } else {
    57                                 System.out.println(createPrintStr(list.getName(), fileLevel));
    58                         }
    59                 }
    60         }
    61         
    62         public static void main(String[] args) {
    63                 ReadDirectory rd = new ReadDirectory();
    64                 String dirPath = "D:\有道词典";
    65                 rd.printDir(dirPath);
    66                 rd.readFile(dirPath);
    67         }
    68 }

    输出结果如下:

  • 相关阅读:
    Python2 升级Python3
    'builtin_function_or_method' object has no attribute 'translate'
    antd-mobile的DatePicker分钟精度半小时
    Windows10远程报错:由于CredSSP加密Oracle修正
    Nginx配置
    MySQL之索引优化
    Ubuntu下删除VMware的方法
    控制窗体的显示和隐藏
    os模块
    树莓派 使用3.5耳机口输出音频
  • 原文地址:https://www.cnblogs.com/jenson138/p/4691418.html
Copyright © 2011-2022 走看看