求为什么会出现空指针错误

求为什么会出现空指针异常import java.io.*public class Dir {/** * @param args */public static void m

求为什么会出现空指针异常
import java.io.*;

public class Dir {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
File f=new File("d:\");
File[] files = f.listFiles();
System.out.println(files.length);
//for(int i=0;i<files.length;i++){
//System.out.println(files[i]+" ");
//}
show(f);

}

public static void show(File  file){
File files[]=file.listFiles();
for(int i=0;i<files.length;i++){
if(files[i].isDirectory())
show(files[i]);
else{
System.out.println(files[i]+" ");}


}


}
}