从根目录遍历文件 出现空指针异常 java.lang.NullPointerException
用递归遍历文件的文件
import java.io.File; public class ShowFile { public static void main(String[] args) { File f = new File("D:\\"); showDir(f); } public static void showDir(File f){ File[] arr = f.listFiles(); for (File dir:arr) { System.out.println(dir); if(dir.isDirectory()){ showDir(dir); } } } }
结果出现空指针异常

在文件夹中查看没有发现这个文件 百度之后发现是回收站的连接文件 所以我决定跳过这个文件
for (File dir:arr) { System.out.println(dir); if(dir.isDirectory()){ if(dir.toString().equals(f.toString() + "$RECYCLE.BIN")) continue; showDir(dir); } }
结果又碰到一个

然后我通过try{}catch(){} 将所有的异常捕获
for (File dir:arr) { System.out.println(dir); if(dir.isDirectory()){
try {
showDir(dir);
}catch (Exception e){
System.out.println(e);
}
}
}
发现都是空指针异常

于是我决定将这三个文件夹全部跳过
import java.io.File; public class ShowFile { public static void main(String[] args) { File f = new File("D:\\"); showDir(f); } public static void showDir(File f){ File[] arr = f.listFiles(); for (File dir:arr) { System.out.println(dir); if(dir.isDirectory()){ // if(dir.toString().equals(f.toString() + "$RECYCLE.BIN")) continue; // showDir(dir); try { showDir(dir); }catch (Exception e){ // System.out.println(e); if(e.toString().equals("java.lang.NullPointerException")) continue; } } } } }
最后成功将文件夹遍历完成!
求大佬指点 其他的解决办法!总觉得这样会有问题!

浙公网安备 33010602011771号