获取目录下的文件及文件夹等信息

package com.aaa.tools.file;

import java.io.File;
/*
 * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 。
 * 并将文件夹和文件名称打印在控制台上面。并且要显示文件目录的层级
 * 注:运用了递归的算法。
 */
public class GetFileInfoByPath {

    public static void main(String[] args) {
        File dir=new File("D:\数据中心附件\");
        //File dir=new File("F:\");
        //如果使用上述的盘符的根目录,会出现java.lang.NullPointerException
        //不能选择根目录
        getAllFiles(dir,0);//0表示最顶层
    }
    //获取层级的方法
    public static String getLevel(int level)
    {
        //A mutable sequence of characters.
        StringBuilder sb=new StringBuilder();
        for(int l=0;l<level;l++)
        {
            sb.append("|--");
        }
        return sb.toString();
    }
    public static void getAllFiles(File dir,int level)
    {
        System.out.println(getLevel(level)+dir.getName());
        level++;
        File[] files=dir.listFiles();
        for(int i=0;i<files.length;i++)
        {
            if(files[i].isDirectory())
            {
                //这里面用了递归的算法
                getAllFiles(files[i],level);
            }
            else {
                System.out.println("文件路径"+files[i]);
                System.out.println(getLevel(level)+files[i]);
            }
        }
    }
}

  

原文地址:https://www.cnblogs.com/torchstar/p/14817005.html