天天看點

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

通過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("未知錯誤檔案");
            }

        }

    }

}