A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨兴庭 于 2013-7-5 22:22 编辑

遍历文件夹 传入根目录如D:\\时报错;其他目录如D:\\x64没问题
//listDir方法
public static void listDir(File dir){
                System.out.println(dir);
                File[] files = dir.listFiles();
                for(File file:files){    //java.lang.NullPointerException,传入根目录如D:\\时报错;其他目录如D:\\x64没问题
                        if(file.isDirectory())
                                listDir(file);
                        else System.out.println(file);
                }
        }
------------------------但在main中dir.listFiles();没问题
                File dir=new File("D:\\");
                File[] names=dir.listFiles();   //在这没问题的
                for(File name:names){
                        System.out.println(name);                        
                }






评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

4 个回复

倒序浏览
在上面那个程序中你没表明dir代表那个对象文件啊,没有创建一个文件实例啊,而在main中你创建D:\\的实例dir,这样就没有问题了

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

回复 使用道具 举报
既然是空指针异常,那就是你这个file[] 数组问题,检查下D:\\里面是否有文件
回复 使用道具 举报
main()中代码:
public static void main(String[] args) {
                     File f=new File("d:\\");
                      listDir(f);//调用自定义函数
}
自定义函数:
public static void listDir(File dir){
        System.out.println(dir);//打印目录
        File[] files = dir.listFiles();//得到dir下所有文件
        for(File file:files){  
                if(file.isDirectory())//判断是否是目录,如果是目录就递归否则打印文件
                        listDir(file);
                else
                       System.out.println(file);
        }
}
按照我的试试,,,,

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
楼主您好,我已将您帖子的状态改成“已解决”,对此如有疑问可以通过

QQ632763270和我取得联系

-------------------坚持学习,黑马因你而精彩---------------
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马