获得目录出现 空指针异常 (谢谢每一关注的人)---------java

importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;publicclassFile... import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileMuLu {

public void ff(String root){
File file = new File(root);
File[] subFile = file.listFiles();
//if(subFile.length>=0){
for (int i = 0; i < subFile.length; i++) {
if (subFile[i].isDirectory()) {
System.out.println("目录: "+subFile[i].getPath() );
ff(subFile[i].getAbsolutePath());
}else{
System.out.println("文件: " + subFile[i].getName());
}
}
//}
}

public void init(){
File[] roots=File.listRoots();
for(File root:roots){
System.out.println(root);
ff(root.toString());
}
}

public static void main(String[] args){
new FileMuLu().init();
}

}

上面代码可以运行,但在运行的过程中会出现 空指针异常。
for (int i = 0; i < subFile.length; i++) 这行出现异常。
展开
 我来答
风之迹小课堂
2010-05-30 · 超过10用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:102万
展开全部
这是因为 subFile引用为空,也就是执行file.listFiles();返回为null,
估计你是像我一样当前登录机器的用户不是Administrator,而当程序找到
目录: C:\Documents and Settings\Administrator
时,由于没有权限访问,所以file.listFiles();返回为null,建议加一个判断当subFile不为空时才执行你的循环
夏侯侯寒OQ
2010-05-31 · TA获得超过158个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:81.9万
展开全部

//if(subFile.length>=0){
这个行改为:
if(subFile!=null){
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式