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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨庆雷 于 2014-6-28 00:27 编辑
  1. package IO;

  2. import java.io.File;

  3. public class FileDemo3 {
  4.         
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 File f = new File("c:\\Windows");
  8.                 showDir(f,0);
  9.         }
  10.         
  11.         public static void showDir(File dir,int level){
  12.                 System.out.println(getLevel(level)+dir.getName());
  13.                 level++;
  14.                 File[] files =dir.listFiles();
  15.                 for(int x=0;x<files.length;x++){
  16.                         
  17.                         if(files[x].isDirectory()){
  18.                                 showDir(files[x],level);
  19.                                 
  20.                         }else{
  21.                                 System.out.println(getLevel(level)+files[x]);
  22.                         }
  23.                 }
  24.         }
  25.         
  26.         public static String getLevel(int level){
  27.                 StringBuilder sb = new StringBuilder();
  28.                 for(int x=0;x<level;x++){
  29.                         
  30.                         sb.append("-----");
  31.                 }
  32.                
  33.                 return sb.toString();
  34.         }
  35. }
复制代码
  1. Exception in thread "main" java.lang.NullPointerException
  2.         at IO.FileDemo3.showDir(FileDemo3.java:17)
  3.         at IO.FileDemo3.showDir(FileDemo3.java:20)
  4.         at IO.FileDemo3.showDir(FileDemo3.java:20)
  5.         at IO.FileDemo3.main(FileDemo3.java:10)
复制代码
有的目录会有空指针  换一个目录可能就没空指针   怎么回事这个


评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

4 个回复

倒序浏览
我感觉是Windows目录下有些文件是隐藏的,或者是没有访问权限的。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
问题应该是出在dir.listFiles();这里,如果目录是空的,数组就是null,调用files.length,就会报空指针
回复 使用道具 举报
陈培果 发表于 2014-6-25 17:10
我感觉是Windows目录下有些文件是隐藏的,或者是没有访问权限的。

应该是  有些文件是隐藏的  所以无法访问  返回的files就是空的  thx
回复 使用道具 举报
文件被隐藏。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马