TShopping

 找回密碼
 註冊
搜索
查看: 2111|回復: 0
打印 上一主題 下一主題

[教學] java遞迴讀取目錄下所有檔案的方法

[複製鏈接]
跳轉到指定樓層
1#
發表於 2020-1-9 15:49:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
java遞迴讀取目錄下的所有檔案(包含子目錄下的所有檔案)大概思路如下:通過file.listFiles()方法獲取目錄下的所有檔案(包含子目錄下的所有檔案),得到files[]陣列,然後遍歷得到的所有檔案,通過isFile(檔案)和isDirectory(資料夾)方法來判斷讀取的是檔案還是資料夾,如果得到的是資料夾,就遞迴呼叫test()方法,如果得到的是檔案,就將其加入fileList中,最後測試的時候遍歷fileList下的所有檔案,來驗證讀取資料的準確性。

  1. private static void test(String fileDir) {
  2.         List<File> fileList = new ArrayList<File>();
  3.         File file = new File(fileDir);
  4.         File[] files = file.listFiles();// 獲取目錄下的所有檔案或資料夾
  5.         if (files == null) {// 如果目錄為空,直接退出
  6.             return;
  7.         }
  8. // 遍歷,目錄下的所有檔案
  9.         for (File f : files) {
  10.             if (f.isFile()) {
  11.                 fileList.add(f);
  12.             } else if (f.isDirectory()) {
  13.                 //System.out.println(f.getAbsolutePath());
  14.                 Log.d("filepath ff: ",f.getAbsolutePath()); //遞迴輸出的目錄
  15.                 test(f.getAbsolutePath());
  16.             }
  17.         }
  18.         for (File f1 : fileList) {
  19.             Log.d("filepath f1: ",f1.getName()); //遞迴輸出的檔案
  20.         }
  21.     }
  22. public static void main(String[] args) {
  23. test("/storage/emulated/0/Android/data/com.dinogame.gplay.mmorpg.mu.mobile");
  24. }
  25. }

複製代碼


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


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



文章出處
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/298469/

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-25 10:09 , Processed in 0.074597 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表