黑马程序员技术交流社区
标题:
想起以前遇到的一个问题,关于递归显示文件目录的
[打印本页]
作者:
罗凯健
时间:
2013-9-17 16:39
标题:
想起以前遇到的一个问题,关于递归显示文件目录的
本帖最后由 罗凯健 于 2013-9-17 18:21 编辑
package com.itheima;
import java.io.File;
import java.io.IOException;
public class filec {
/**
* @param args
*/
public static void main(String[] args) throws IOException {
File dir = new File("F:\\");
showdir(dir);
}
private static void showdir(File dir) {
// TODO Auto-generated method stub
File[] f=dir.listFiles();
for(File f1:f)
{
if (f1.isDirectory())
{
if (f1.exists())
{
showdir(f1);
}
}
else
System.out.println(f1);
}
}
}
复制代码
之前出现一个问题就是,当传入的路径为盘符的时候,递归显示到一定程度就会报一个空指针异常。我试过传入不同盘符,都会报错,而且有一个相同点,停下来的时候列出的文件的顶级目录都是S开头的。这里面有什么必然的关系吗
作者:
罗凯健
时间:
2013-9-17 16:58
这个问题似乎很奇葩= =大家复制一下来运行看看呗
作者:
loading……99.9
时间:
2013-9-17 17:01
我的各个磁盘中的文件比较多,开始的时候我复制你的代码,确实报了空指针异常,当我在你的for循环加强前添加了一句 if(f != null && f.length > 0) 时,代码就正常了,打印出了我F盘下所有文件,我想你那么些可能会遇见空文件夹,空文件下面没有文件,for循环加强就会报空指针异常
作者:
罗凯健
时间:
2013-9-17 17:06
loading……99.9 发表于 2013-9-17 17:01
我的各个磁盘中的文件比较多,开始的时候我复制你的代码,确实报了空指针异常,当我在你的for循环加强前添 ...
一语中的!我试试!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2