java遞迴讀取目錄下所有檔案的方法

java遞迴讀取目錄下所有檔案的方法

java遞迴讀取目錄下的所有檔案(包含子目錄下的所有檔案)大概思路如下:通過file.listFiles()方法獲取目錄下的所有檔案(包含子目錄下的所有檔案),得到files[]陣列,然後遍歷得到的所有檔案,通過isFile(檔案)和isDirectory(資料夾)方法來判斷讀取的是檔案還是資料夾,如果得到的是資料夾,就遞迴呼叫test()方法,如果得到的是檔案,就將其加入fileList中,最後測試的時候遍歷fileList下的所有檔案,來驗證讀取資料的準確性。


package com.chaoyue.io.test; 
import java.io.File; 
import java.util.ArrayList; 
import java.util.List; 
/** 
* 遞迴讀取某個目錄下的所有檔案 
* 
* @author 超越 
* @Date 2016年12月5日,下午4:04:59 
* @motto 人在一起叫聚會,心在一起叫團隊 
* @Version 1.0 
*/ 
public class ReadFile { 
private static void test(String fileDir) { 
List<File> fileList = new ArrayList<File>(); 
File file = new File(fileDir); 
File[] files = file.listFiles();// 獲取目錄下的所有檔案或資料夾 
if (files == null) {// 如果目錄為空,直接退出 
return; 
} 
// 遍歷,目錄下的所有檔案 
for (File f : files) { 
if (f.isFile()) { 
fileList.add(f); 
} else if (f.isDirectory()) { 
System.out.println(f.getAbsolutePath()); 
test(f.getAbsolutePath()); 
} 
} 
for (File f1 : fileList) { 
System.out.println(f1.getName()); 
} 
} 
public static void main(String[] args) { 
test("F:/apache-tomcat-7.0.57-windows-x64"); 
} 
} 

本地目錄下的檔案結構如下

測試讀取目錄下的檔案如下