我们在对硬盘下的所有目录遍历访问时,经常会出现异常,罪魁祸首就是(硬盘):/System Volume Information这个文件夹,因为这个文件夹它拒绝访问,你就是再遍历,只要碰到它都完蛋,而且还是每个盘都有,当然这个文件夹也可以删掉,但我们今天不提供删除的方法,因为这个文件夹其实也挺重要的,具体请看link,我们直接上代码消除它的影响
import java.io.File;
import java.util.ArrayList;
public class Test1 {
static ArrayList<File> list = new ArrayList<>();
public static void main(String[] args) {
File file = new File("G:/");
for (File f :files(file)) {
System.out.println(f);
}
}
static ArrayList<File> files(File file) {
File[] files = file.listFiles();
for (File f:files) {
list.add(f);
if (f.getName().equals("System Volume Information")){
break;
}else{
if (!f.isFile()){
files(f);
}
}
}
return list;
}
}