利用递归输出指定目录下的所有文件以及文件夹包括子目录中的
因为目录中还有目录,只要使用同一个列出目录的功能函数完成即可
在列出过程中出现的还是目录的话便继续调用本功能
也就是函数调用自身
这种调用自己的方法称为递归
递归从里往外剥
递归要注意
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);
}
}