java.lang.NullPointerException:显示我的所有用户文件

时间:2015-08-27 16:57:48

标签: java file nullpointerexception

我尝试使用java显示所有用户文件,如下所示......

 public static String Tree(File file)
{
    if(file.isDirectory()==true)
    {
        File fr[]=file.listFiles();
        No_fold++;
        for(int i=0;i<fr.length;i++)
        {
            Tree(fr[i]);
        }
    }
    else
    {
        X+=file.getPath()+"\n";
        No_files++;
    }
    return X;
}

在显示我的文档文件时完美运行... 但尝试显示C:/ Users / username

中的文件时会引发以下异常
at com.monster.app.__SHELL137.run(__SHELL137.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at bluej.runtime.ExecServer$3.run(ExecServer.java:725)

请帮我这个.. Thnk U

1 个答案:

答案 0 :(得分:2)

File.listFiles()的文档说明,

  

一组抽象路径名,表示此抽象路径名表示的目录中的文件和目录。如果目录为空,则数组将为空。如果此抽象路径名不表示目录,或者发生I / O错误,则返回null。

因此,只有2种情况,listFiles()的返回值为null

  • 抽象路径名不表示目录
  • 发生I / O错误

由于您确定file是一个目录,我怀疑存在I / O错误。

你说过,

  

在显示我的文档文件时工作正常...但是在尝试显示C:/ Users / username

中的文件时会抛出以下异常

我认为C:/Users/username或其子目录中有一些目录是您无法读取的,并且会导致I / O错误。