package javaiotest;
import java.io.*;
import java.util.Scanner;
public class FileExplore {
private File file = null;
public int fileNum = 0;
public int dirNum = 0;
public FileExplore(){
System.out.println("请输入要遍历的目录:");
Scanner console = new Scanner(System.in);
String filepath = console.next();
file = new File(filepath);
console.close();
}
public String getDepth(File file){
File temp = file;
String depth = new String();
while(temp!=this.file){
depth+=" ";
temp = temp.getParentFile();
}
return depth;
}
public void treeOfFile(File file){
if(!file.exists())
System.out.println("file is null!");
if(file.isFile()){
System.out.println(this.getDepth(file)+"|--"+file.getName());
fileNum++;
}
if(file.isDirectory()&&file.list().length==0){
System.out.println(this.getDepth(file)+"|--" +file.getName());
dirNum++;
}
if(file.isDirectory()&&file.list().length>0)
{
dirNum++;
System.out.println(this.getDepth(file)+"|--"+file.getName());
File[] filelist = file.listFiles();
for(int i=0;i<filelist.length;i++){
treeOfFile(filelist[i]);
}
}
}
public static void main(String[] args) {
FileExplore demo = new FileExplore();
demo.treeOfFile(demo.file);
System.out.println("文件夹数量:"+ demo.dirNum);
System.out.println("文件数量:"+ demo.fileNum);
}
}
结果抛出空指针异常,是在那个getDepth出错的,可是看不出来哪里错了