/**
列出指定目录下文件或者文件夹,包含子目录中的内容。
也就是列出指定目录下的所有内容。
因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。
也就是函数自身调用自身。
这种表现形式,或者编程手法,称为递归。
递归要注意:
1.限定条件。
2.要注意递归的次数。尽量避免内存溢出。
*/
//毕老师的讲解我听的不是太明白,自己改进了一下,实现了递归列出文件夹和文件并带层次样式的。欢迎拍砖。
/**
seo2
. . 1.bmp
. . 2.txt
. . seo2xiaee
. . . . ee(1).rar
. . . . ee2.rar
. . . . ee3.rar
. . . . empty_dir
. . seo2xiaff
. . . . ffxiagg
. . . . . . abdef.rar
. . seo2xiass
. . . . ssxiade.txt
. . . . ssxiahh
. . . . . . 分类信息网源码-临沂市场信息网.rar
. . . . . . 多多淘宝客v8破解版本.rar
. . . . . . 多多淘宝客模板制作教程.rar
*/
import java.io.*;
class FileDemo3
{
public static void main(String[] args)
{
method2();
}
public static void method2() {
File file = new File("E:\\seo2");
System.out.println(file.getName());
showDir(0, file);
}
public static String setLevel(int level) {
StringBuilder sb = new StringBuilder();
for(int i=0; i<level; i++) {
sb.append(". . ");
}
return sb.toString();
}
public static void showDir(int level, File dir) {
level++;
File[] files = dir.listFiles();
for(int i=0; i<files.length; i++) {
System.out.println(setLevel(level) + files[i].getName());
if(files[i].isDirectory()){
////System.out.println(setLevel(level) + files[i].getName());
showDir(level, files[i]);
} else {
////System.out.println(setLevel(level) + files[i].getName());
}
}
}
public static void method1() {
int n = 8888;
long sum = sub(n); //使用递归求和
System.out.println("sum = " + sum);
}
public static long sub(int n) {
if(n==1)
return 1;
return n + sub(n-1);
}
}