学到目录树那里,也照着敲了一次,代码如下
package testcalendar;
import java.io.File;
public class TestFileTree {
public static void main(String[] args) {
File f=new File("d:");
printFileTree(f,0);
}
static void printFileTree(File file, int level) {
// TODO Auto-generated method stub
for (int i=0;i<level;i++){
System.out.print("-");
}
System.out.println(file.getName());
if(file.isDirectory()){
File [] files=file.listFiles();
for (File temp:files){
printFileTree(temp, level+1);
}
}
}
}
那么问题就出来了,File f=new File("d:");设定打印D:根目录的目录树打印不了会出错
-$RECYCLE.BIN
--S-1-5-18
Exception in thread "main" java.lang.NullPointerException
at testcalendar.TestFileTree.printFileTree(TestFileTree.java:21)
at testcalendar.TestFileTree.printFileTree(TestFileTree.java:22)
at testcalendar.TestFileTree.printFileTree(TestFileTree.java:22)
at testcalendar.TestFileTree.main(TestFileTree.java:8)
看样子第一个是回收站被打印出来了。
这里如果设成打印d盘下已有的比如eclipse或者其他文件夹就正常输出了。而且设成c盘系统盘也会出错
这是哪里的问题呢??
然后还有另一个例程是读取d根目录下一个文件,也是报错,错误是文件不存在,实际当然是存在的且正常的,但是如果读取d盘下eclipse里或者其他文件夹里的文件就正常。
求解。谢谢了