Java查詢目錄下的所有檔案(包括子目錄)
阿新 • • 發佈:2021-09-19
錄圖:
方法程式碼:
/** * 讀取目錄下的所有檔案 * * @param dir * 目錄 * @param fileNames * 儲存檔名的集合 * @return */ public static void findFileList(File dir, List<String> fileNames) { if (!dir.exists() || !dir.isDirectory()) {// 判斷是否存在目錄 return; } String[] files = dir.list();// 讀取目錄下的所有目錄檔案資訊 for (int i = 0; i < files.length; i++) {// 迴圈,新增檔名或回撥自身 File file = new File(dir, files[i]); if (file.isFile()) {// 如果檔案 fileNames.add(dir + "\\" + file.getName());// 新增檔案全路徑名 } else {// 如果是目錄 findFileList(file, fileNames);// 回撥自身繼續查詢 } } }
測試程式碼:
public static void main(String[] args) throws Exception { List<String> fileNames = new ArrayList<String>(); FileUtil.findFileList(new File("F:\\HTML\\bootstrap"),fileNames ); System.out.println(); for (String value : fileNames) { System.out.println("file:"+value); } }
整個類FileUtil.java:
public class FileUtil { public static void main(String[] args) throws Exception { List<String> fileNames = new ArrayList<String>(); FileUtil.findFileList(new File("F:\\HTML\\bootstrap"),fileNames ); System.out.println(); for (String value : fileNames) { System.out.println("file:"+value); } } /** * 讀取目錄下的所有檔案 * * @param dir * 目錄 * @param fileNames * 儲存檔名的集合 * @return */ public static void findFileList(File dir, List<String> fileNames) { if (!dir.exists() || !dir.isDirectory()) {// 判斷是否存在目錄 return; } String[] files = dir.list();// 讀取目錄下的所有目錄檔案資訊 for (int i = 0; i < files.length; i++) {// 迴圈,新增檔名或回撥自身 File file = new File(dir, files[i]); if (file.isFile()) {// 如果檔案 fileNames.add(dir + "\\" + file.getName());// 新增檔案全路徑名 } else {// 如果是目錄 findFileList(file, fileNames);// 回撥自身繼續查詢 } } } }
結果圖: