1. 程式人生 > 其它 >獲取資料夾下,包含子目錄內的所有指定字尾的檔案

獲取資料夾下,包含子目錄內的所有指定字尾的檔案

技術標籤:開發經驗

寫了一個工具類,來獲取指定資料夾下,包含子目錄的所有指定字尾的檔案。

注意一個問題,這是一個遞迴呼叫,在工程上使用可能會比較危險,注意進行保護。

package com.angus.demo;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @author angus
 * @date 2021/1/5 20:44
 */
public class Test {

    public static void main(String[] args) {
        //要遍歷的路徑
        String path = "C:\\Users\\iamazy\\Desktop\\imageDown";
        //獲取其file物件,將所有的符合指定字尾的都放入到list裡
        List<File> fileList = new ArrayList<>();
        File file = new File(path);
        //指定問價的字尾
        String fileSuffix = ".json";
        func(file, fileList, fileSuffix);
        //接下來就可以對所有的檔案進行操作了。
        System.out.println(fileList.size());
    }

    private static void func(File file, List<File> fileList, String fileSuffix) {
        File[] fs = file.listFiles();
        for (File f : fs) {
            //若是目錄,則遞迴列印該目錄下的檔案
            if (f.isDirectory()){
                func(f, fileList, fileSuffix);
            }
            if (f.isFile()){
                //若是檔案,直接列印
                if(f.getName().contains(fileSuffix)){
                    fileList.add(f);
                    System.out.println(f.getName());
                }
            }
        }
    }
}