Java如何獲取指定目錄文件列表
最近項目中會動態(tài)生成文件html及相關(guān)資源文件(css,js,png,mp3),為了防止文件名重復(fù),需要獲取目錄中相同類型文件的最大編號,下面我用代碼來實現(xiàn)獲得文件列表。
public static void getFiles(String path) { File file = new File(path); // 如果這個路徑是文件夾 if (file.isDirectory()) { // 獲取路徑下的所有文件 File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) { // 如果還是文件夾 遞歸獲取里面的文件 文件夾 if (files[i].isDirectory()) { System.out.println("目錄:" + files[i].getPath()); getFiles(files[i].getPath()); } else { System.out.println("文件:" + files[i].getName()); // files[i].getPath()); } } } else { System.out.println("文件:" + file.getPath()); } }
public static File[] getFilter(String strFilePath, String strExtension) { File[] list = new File(strFilePath).listFiles(); for(File file : list) { if(file.isFile()) { if (file.getName().endsWith(strExtension)) { System.out.println(file.getAbsolutePath()); } } } return list; }
如果想要獲得當(dāng)前文件夾中的文件名只需要 String [] fileName = file.list(); 就可以了。如果要包括文件中的文件名就可以用遞歸的方式。下面是兩個具體的實現(xiàn)。
其中public static String [] getFileName(String path)是只得到當(dāng)前文件中的文件名。public static void getAllFileName(String path,ArrayList<String> fileName)是包括當(dāng)前文件及其子文件的文件名。
public class GetFileName { public static String [] getFileName(String path) { File file = new File(path); String [] fileName = file.list(); return fileName; } public static void getAllFileName(String path,ArrayList<String> fileName) { File file = new File(path); File [] files = file.listFiles(); String [] names = file.list(); if(names != null) fileName.addAll(Arrays.asList(names)); for(File a:files) { if(a.isDirectory()) { getAllFileName(a.getAbsolutePath(),fileName); } } } public static void main(String[] args) { String [] fileName = getFileName("F:\\xiaoshuo"); for(String name:fileName) { System.out.println(name); } System.out.println("--------------------------------"); ArrayList<String> listFileName = new ArrayList<String>(); getAllFileName("F:\\xiaoshuo",listFileName); for(String name:listFileName) { System.out.println(name); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis框架order by作為參數(shù)傳入時失效的解決
這篇文章主要介紹了mybatis框架order by作為參數(shù)傳入時失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06關(guān)于json解析多層嵌套并轉(zhuǎn)為對應(yīng)類(List)
在進行JSON解析時,遇到多層嵌套結(jié)構(gòu)可通過遞歸或?qū)S脦靵韺崿F(xiàn),重要的是將嵌套的JSON對象準(zhǔn)確轉(zhuǎn)化為對應(yīng)的Java類,通常需要依賴如Gson或Jackson等庫,將JSONObject轉(zhuǎn)為JavaBean時,關(guān)注字段匹配與數(shù)據(jù)類型轉(zhuǎn)換2024-10-10SpringBoot通過token實現(xiàn)用戶互踢功能(具體實現(xiàn))
所謂token,既用戶能夠在一定時間內(nèi)證明自己身份的一長串字符串,這篇文章主要介紹了SpringBoot通過token實現(xiàn)用戶互踢功能,需要的朋友可以參考下2024-04-04Spring Cloud重試機制與各組件的重試總結(jié)
這篇文章主要給大家介紹了關(guān)于Spring Cloud中重試機制與各組件的重試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11探究Java常量本質(zhì)及三種常量池(小結(jié))
這篇文章主要介紹了探究Java常量本質(zhì)及三種常量池(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09