通過file.listFiles()方法擷取目錄下的所有檔案(包含子目錄下的所有檔案),得到files[]數組,然後周遊得到的所有檔案,通過isFile(檔案)和isDirectory(檔案夾)方法來判斷讀取的是檔案還是檔案夾。
import java.io.File;
public class fileTest {
public static void main(String[] args) {
System.out.println();
// 這裡改成你要周遊的目錄路徑
recursiveFiles("D:\\...");
}
private static void recursiveFiles(String path){
// 建立 File對象
File file = new File(path);
// 取 檔案/檔案夾
File files[] = file.listFiles();
// 對象為空 直接傳回
if(files == null){
return;
}
// 目錄下檔案
if(files.length == 0){
System.out.println(path + "該檔案夾下沒有檔案");
}
// 存在檔案 周遊 判斷
for (File f : files) {
// 判斷是否為 檔案夾
if(f.isDirectory()){
System.out.print("檔案夾: ");
System.out.println(f.getAbsolutePath());
// 為 檔案夾繼續周遊
recursiveFiles(f.getAbsolutePath());
// 判斷是否為 檔案
} else if(f.isFile()){
System.out.print("檔案: ");
System.out.println(f.getAbsolutePath());
} else {
System.out.print("未知錯誤檔案");
}
}
}
}