我尝试使用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
答案 0 :(得分:2)
File.listFiles()的文档说明,
一组抽象路径名,表示此抽象路径名表示的目录中的文件和目录。如果目录为空,则数组将为空。如果此抽象路径名不表示目录,或者发生I / O错误,则返回null。
因此,只有2种情况,listFiles()的返回值为null
由于您确定file
是一个目录,我怀疑存在I / O错误。
你说过,
在显示我的文档文件时工作正常...但是在尝试显示C:/ Users / username
中的文件时会抛出以下异常
我认为C:/Users/username
或其子目录中有一些目录是您无法读取的,并且会导致I / O错误。