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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© murder_fol 中级黑马   /  2013-10-9 10:21  /  1309 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 murder_fol 于 2013-10-9 10:42 编辑
  1. /*
  2. 用递归算法列出目录下的所有内容
  3. */

  4. import java.io.*;
  5. class  FileListAll
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 File file = new File("d:\\");
  10.                 listAll(file);
  11.         }

  12.         public static void  listAll(File f)
  13.         {
  14.                 System.out.println(f);
  15.                 File []files = f.listFiles();

  16.                 for(int x =0;x<files.length;x++)
  17.                 {
  18.                         
  19.                         if(files[x].isDirectory())
  20.                                 listAll(files[x]);
  21.                         else
  22.                                 System.out.println(files[x]);

  23.                 }

  24.                
  25.         }
  26. }
复制代码
当有空文件夹时候,会出现空指针异常


评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
直接抛出异常,或者try catch都行
回复 使用道具 举报
可以首先判断下文件夹是否存在  
回复 使用道具 举报
本帖最后由 murder_fol 于 2013-10-9 10:32 编辑

不好意思,自己解决了,一直想着用files.length来检测是否为空,其实用files!=null就可以检测是否为空了,空文件夹listFile返回的也是null,调用length,当然会出现空指针异常
  1. for(int x =0;files!=null&&x<files.length;x++)
  2.                 {
  3.                        
  4.                         if(files[x].isDirectory())
  5.                                 listAll(files[x]);
  6.                         else
  7.                                 System.out.println(files[x]);

  8.                 }
复制代码
回复 使用道具 举报
如何结束提问呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马