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

    http://www.cnblogs.com/jenson138/p/4691418.html

    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 = 0; 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 = 0; 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 = 0; 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);
            }
    }
    

      

    输出结果如下:

     
  • 相关阅读:
    Android数据存储
    linux中uptime命令查看linux系统负载
    Linux系统中的load average
    Trie树(c++实现)
    模版
    重载操作符[]
    stanford-postagger中文词性标注
    数值的整数次方(剑指offer面试题11)
    __init__ 和 self
    python中文分词:结巴分词
  • 原文地址:https://www.cnblogs.com/a757956132/p/4703751.html
Copyright © 2011-2022 走看看