利用递归输出指定目录下的所有文件以及文件夹包括子目录中的

因为目录中还有目录,只要使用同一个列出目录的功能函数完成即可

在列出过程中出现的还是目录的话便继续调用本功能

也就是函数调用自身

这种调用自己的方法称为递归

 

递归从里往外剥

递归要注意

1,限定条件

2,要注意递归的次数,尽量避免内存的溢出

import java.io.*;
class fileDemo01 
{
    public static void main(String[]args) 
    {
        File f = new File("E:/ISO教程");
        diguiFile(f,1);
    }
    public static void diguiFile(Filef,int lev)
    {
        
         sop(rank(lev)+f.getName());
         lev++;
         File[] fs = f.listFiles();
         for (int x = 0 ;x<fs.length ;x++ )//数组的长度length字符串的长度length()
         {
             if (fs[x].isDirectory())
             {
                 diguiFile(fs[x],lev);  
             }
             else
                 System.out.println(rank(lev)+fs[x].getName());
         }
    }
    //空格用来分级
    public static String rank(int lev)
    {
        StringBuilder sb = newStringBuilder();
        sb.append(lev+"|--");
        for (int i =1;i<lev ;i++ )
        {
            sb.insert(0,"    ");
        }
        return sb.toString();
    }
    public static void sop(Object o)
    {
        System.out.println(o);
    }
}