码迷,mamicode.com
首页 > 编程语言 > 详细

java遍历给定目录,树形结构输出所有文件,包括子目录中的文件

时间:2016-05-04 09:00:40      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

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

  

输出结果如下:

 技术分享

java遍历给定目录,树形结构输出所有文件,包括子目录中的文件

标签:

原文地址:http://www.cnblogs.com/shouce/p/5457149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!