【发布时间】:2012-07-23 11:42:44
【问题描述】:
我正在尝试使用这个程序来计算 D:\ 驱动器中的所有文件,但是当我运行它时它会抛出异常。
package lmh;
import java.io.File;
public class FileList {
static int fileNum = 0;
static int directoryNum = 0;
static int cannotRead = 0;
public static void main(String[] args) {
File f = new File("e:/");
printFileStructure(f);
System.out.println("result:");
System.out.println("file number:" + fileNum);
System.out.println("directory number:" + directoryNum);
System.out.println("cannot rend:" + cannotRead);
}
public static void printFileStructure(File f) {
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
if (files[i].canRead()) {
fileNum++;
System.out.println(files[i].getName());
} else {
cannotRead ++;
}
}
else if (files[i].isDirectory()) {
if (files[i].canRead()) {
directoryNum++;
printFileStructure(files[i]);
} else {
cannotRead ++;
}
}
}
}
}
【问题讨论】:
-
例外情况是???
-
java.lang.NullPointerException
-
如果它与我的测试类似,它将在
f.listFiles()附近 -
堆栈跟踪应该告诉您引发异常的确切行。