woff 發表於 2020-1-9 15:49:48

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

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

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());
                Log.d("filepath ff: ",f.getAbsolutePath()); //遞迴輸出的目錄
                test(f.getAbsolutePath());
            }
      }
      for (File f1 : fileList) {
            Log.d("filepath f1: ",f1.getName()); //遞迴輸出的檔案
      }
    }
public static void main(String[] args) {
test("/storage/emulated/0/Android/data/com.dinogame.gplay.mmorpg.mu.mobile");
}
}



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


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


文章出處
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/298469/
頁: [1]
查看完整版本: java遞迴讀取目錄下所有檔案的方法