遍历指定盘符下所有文件

import java.io.File;

/**

  • @author * *尝试遍历每个文件夹,并列出所有内容 *分析:
  • 1.获取文件件对象
  • 2.判断是否为文件夹
  • 3.是 继续判断 是否为文件夹
  • 4.否,则打印所有文件的文件名
    *使用遍历
    */
    public class BianliWenjianjia {
    public static void main(String []args){
    // File file=new File("E:\inst\3-图形图像\素材2011\eclipse");
    File file=new File("F:\");
    file(file,0);
    }
    public static void file( File file,int i) {
    //创建文件对象,指定根目录
    System.out.println(getSpace(i)+file.getName());
    //定义一个变量用于记录目录层次
    i++;

    //获取文件对象

        File [] fileArr=file.listFiles();
    
        for(int  index=0;index<fileArr.length;index++)
    

    // for(File fileCon:fileArr)
    {//遍历
    if(fileArr[index].isDirectory())
    // if(fileCon.isDirectory())
    {
    file(fileArr[index],i);
    // file(fileCon,i);
    }
    else
    {
    System.out.println(getSpace(i)+fileArr[index].getName());
    // System.out.println(getSpace(i)+fileCon.getName());
    }
    }
    if(file.getParentFile()==file)
    return ;

    }

    /**

    • @param i 目录层次
    • @return 空格字符
      */
      private static String getSpace(int i) {

      StringBuffer sb=new StringBuffer();
      sb.append("|--");
      for(int a=0;a<i;a++)
      {
      sb.insert(0,"| ");
      }
      return sb.toString();
      }

}
在这个程序中若指定具体某个文件夹就可以成功遍历,但是指定具体盘符时就会报java.lang.NullPointerException,本人开始以为是系统权限问题,以管理员权限运行也出现同样的错误,所以向各位前辈请教!请帮忙分析下这是什么原因!学生在此谢过了!