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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© die_er 初级黑马   /  2014-4-2 13:37  /  2028 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


import java.io.File;
import java.io.FilenameFilter;

public class Demo {

        public static void main(String[] args){
                File dir = new File("d:");
                showDir(dir);
        }
       
        public static void showDir(File dir)
        {
                System.out.println(dir);
                File[] files = dir.listFiles();
                for(int i=0; i<files.length; i++){
                        if(files[i].isDirectory())
                                showDir(files[i]);
                        else
                        {
                        String str = files[i].toString();
                        if(str.endsWith(".mp3"))
                                System.out.println(files[i]);
                        }
                }
        }
}
代码如上,运行的结果是:

d:\360SoftMove\SoftMoveConfig\我的音乐
d:\360SoftMove\SoftMoveConfig\收藏夹
d:\360SoftMove\SoftMoveConfig\桌面
d:\360SoftMove\SoftMoveConfig\用户临时文件夹
d:\aa
d:\CloudCache
d:\CloudCache\bfcapp
d:\CloudCache\bfcapp\link
d:\IP代理_2.88
d:\Media
d:\System Volume Information
Exception in thread "main" java.lang.NullPointerException
        at For20_7.Demo.showDir(Demo.java:17)
        at For20_7.Demo.showDir(Demo.java:19)
        at For20_7.Demo.main(Demo.java:10)
说空指针错误,我特意传个空文件夹的对象,都不报错,老是扫描整个d盘就出错,求指点

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
:(一天了,么人吗
回复 使用道具 举报
d: 换成d://试试
回复 使用道具 举报
d盘是“D:\\”
回复 使用道具 举报
在进行for循环遍历前,要进行一下判断,if(files!=null)  这样就行了
回复 使用道具 举报
for(int i=0; i<files.length; i++){   这一行出错的  原因是 File[] files = dir.listFiles(); 这一行事 files得到的files 是空 , 所以在这前面要加非空判断
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马