JAVA實(shí)現(xiàn)遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用)
JAVA 遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用)
1.不使用遞歸的方法調(diào)用.
public void traverseFolder1(String path) { int fileNum = 0, folderNum = 0; File file = new File(path); if (file.exists()) { LinkedList<File> list = new LinkedList<File>(); File[] files = file.listFiles(); for (File file2 : files) { if (file2.isDirectory()) { System.out.println("文件夾:" + file2.getAbsolutePath()); list.add(file2); fileNum++; } else { System.out.println("文件:" + file2.getAbsolutePath()); folderNum++; } } File temp_file; while (!list.isEmpty()) { temp_file = list.removeFirst(); files = temp_file.listFiles(); for (File file2 : files) { if (file2.isDirectory()) { System.out.println("文件夾:" + file2.getAbsolutePath()); list.add(file2); fileNum++; } else { System.out.println("文件:" + file2.getAbsolutePath()); folderNum++; } } } } else { System.out.println("文件不存在!"); } System.out.println("文件夾共有:" + folderNum + ",文件共有:" + fileNum); }
2.使用遞歸的方法調(diào)用.
public void traverseFolder2(String path) { File file = new File(path); if (file.exists()) { File[] files = file.listFiles(); if (files.length == 0) { System.out.println("文件夾是空的!"); return; } else { for (File file2 : files) { if (file2.isDirectory()) { System.out.println("文件夾:" + file2.getAbsolutePath()); traverseFolder2(file2.getAbsolutePath()); } else { System.out.println("文件:" + file2.getAbsolutePath()); } } } } else { System.out.println("文件不存在!"); } }
3,
public static List<File> getFileList(String strPath) { File dir = new File(strPath); File[] files = dir.listFiles(); // 該文件目錄下文件全部放入數(shù)組 if (files != null) { for (int i = 0; i < files.length; i++) { String fileName = files[i].getName(); if (files[i].isDirectory()) { // 判斷是文件還是文件夾 getFileList(files[i].getAbsolutePath()); // 獲取文件絕對(duì)路徑 } else if (fileName.endsWith("avi")) { // 判斷文件名是否以.avi結(jié)尾 String strFileName = files[i].getAbsolutePath(); System.out.println("---" + strFileName); filelist.add(files[i]); } else { continue; } } } return filelist; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java 實(shí)現(xiàn)簡(jiǎn)單靜態(tài)資源Web服務(wù)器的示例
這篇文章主要介紹了Java 實(shí)現(xiàn)簡(jiǎn)單靜態(tài)資源Web服務(wù)器的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11JAVA Iterator 轉(zhuǎn)成 List 的操作
這篇文章主要介紹了JAVA Iterator 轉(zhuǎn)成 List 的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12SpringBoot文件上傳控制及Java 獲取和判斷文件頭信息
這篇文章主要介紹了SpringBoot文件上傳控制的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12

java通過isAccessAllowed方法實(shí)現(xiàn)訪問控制

Java中的線程池ThreadPoolExecutor深入解析

SpringBoot項(xiàng)目中@Test不出現(xiàn)可點(diǎn)擊運(yùn)行的按鈕問題

Spring使用ThreadPoolTaskExecutor自定義線程池及異步調(diào)用方式