写了一个递归统计文件的程序,练习哈思维,呵呵
package org.forever.testlucene;
import java.io.File;
//递归统计文件的数量
public class FileCounter {
public static void main(String[] args) {
int[] array = new int[]{0,0};
print(new File("D:\\root"),1,array);
System.out.println("该目录下面共有文件夹个数:"+array[0]);
System.out.println("该目录下面共有文件个数:"+array[1]);
}
/**
* 打印指定文件夹下面的文件夹和文件的名字,统计该文件夹下面的文件夹数量和文件数量
* @param file 根文件夹
* @param level 深度从1开始算
* @param array 存放统计个数的数据,[0]文件夹个数,[1]文件个数
*/
public static void print(File file,int level,int[] array){
if(file.isDirectory()){
array[0]++;
File[] files = file.listFiles();
printBlank(level);
System.out.println(file.getName());
for (File item : files) {
print(item,level+1,array);
}
}else{
array[1]++;
printBlank(level);
System.out.println(file.getName());
}
}
public static void printBlank(int level){
for (int i = 1; i < level; i++) {
System.out.print(" ");
}
}
}