震驚!System Volume Information竟是遍歷硬碟下的所有檔案和目錄時出現異常的真正元凶!!!

Lotus_dong發表於2020-11-28
我們在對硬碟下的所有目錄遍歷訪問時,經常會出現異常,罪魁禍首就是(硬碟):/System Volume Information這個資料夾,因為這個資料夾它拒絕訪問,你就是再遍歷,只要碰到它都完蛋,而且還是每個盤都有,當然這個資料夾也可以刪掉,但我們今天不提供刪除的方法,因為這個資料夾其實也挺重要的,具體請看link,我們直接上程式碼消除它的影響
import java.io.File;
import java.util.ArrayList;

/*
* System Volume Information
* 系統卷標資訊,這個玩意就是一個不可訪問的
*/
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;
    }
}

相關文章