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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 罗凯健 于 2013-9-17 18:21 编辑
  1. package com.itheima;

  2. import java.io.File;
  3. import java.io.IOException;

  4. public class filec {

  5.         /**
  6.          * @param args
  7.          */
  8.         public static void main(String[] args) throws IOException {
  9.                
  10.                 File dir = new File("F:\\");
  11.                 showdir(dir);
  12.                
  13.         }

  14.         private static void showdir(File dir) {
  15.                 // TODO Auto-generated method stub
  16.                 File[] f=dir.listFiles();
  17.                 for(File f1:f)
  18.                 {
  19.                         if (f1.isDirectory())
  20.                         {
  21.                                 if (f1.exists())
  22.                                 {
  23.                                         showdir(f1);
  24.                                 }
  25.                         }
  26.                         else
  27.                                 System.out.println(f1);
  28.                 }
  29.         }

  30.         
  31.         
  32.         
  33. }
复制代码
之前出现一个问题就是,当传入的路径为盘符的时候,递归显示到一定程度就会报一个空指针异常。我试过传入不同盘符,都会报错,而且有一个相同点,停下来的时候列出的文件的顶级目录都是S开头的。这里面有什么必然的关系吗

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
这个问题似乎很奇葩= =大家复制一下来运行看看呗
回复 使用道具 举报
我的各个磁盘中的文件比较多,开始的时候我复制你的代码,确实报了空指针异常,当我在你的for循环加强前添加了一句 if(f != null && f.length > 0) 时,代码就正常了,打印出了我F盘下所有文件,我想你那么些可能会遇见空文件夹,空文件下面没有文件,for循环加强就会报空指针异常

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 很给力!

查看全部评分

回复 使用道具 举报
loading……99.9 发表于 2013-9-17 17:01
我的各个磁盘中的文件比较多,开始的时候我复制你的代码,确实报了空指针异常,当我在你的for循环加强前添 ...

一语中的!我试试!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马