1. 程式人生 > >File類查詢D盤下所有檔案

File類查詢D盤下所有檔案

File類查詢D盤下所有檔案

話不多說,直接上程式碼

package com.cs.io;

import java.io.File;

public class AllFile {

	public static void main(String[] args) throws Exception {
		// 輸出D盤根目錄下面的檔案列表(包括所有的檔案和資料夾)
		//這裡需要使用遞迴方法
		//獲取系統時間
		long StartTime= System.currentTimeMillis();
		//執行方法
		getName("D:/");//使用遞迴方法,這裡我查的是D盤
		
		//再次獲取系統時間將方法執行的時間列印
		long EndTime = System.currentTimeMillis();
		System.out.println("currentTimeMillis執行時間為:"+(EndTime-StartTime));
	}

	public static void getName(String str) throws Exception {
		File file = new File(str);
		//獲取路徑引數下所有的檔案
		File[] listFiles = file.listFiles();
		for (File file2 : listFiles) {
			//將所獲取的檔案列印在控制檯
			System.out.println(file2.getName());
			//判斷給該資料夾下是否有子檔案
			if (file2.listFiles()!=null) {
				if (file2.isDirectory()) {
					getName(file2.getAbsolutePath());
				}
			}
		}
	}
}

遍歷時用file2.listFiles()!=null這個條件,為什麼不用isFiles()方法, 因為在D盤中有些檔案沒有訪問許可權,是拒絕訪問 的,例如:$RECYCLE.BIN檔案(回收站), 下面有許多子檔案是拒絕訪問的

我的D盤檔案有一些隱藏檔案,它的子資料夾是拒絕訪問的

如圖:

隱藏檔案下的隱藏資料夾

拒絕訪問