Java如何獲取指定目錄文件列表
最近項(xiàng)目中會(huì)動(dòng)態(tài)生成文件html及相關(guān)資源文件(css,js,png,mp3),為了防止文件名重復(fù),需要獲取目錄中相同類(lèi)型文件的最大編號(hào),下面我用代碼來(lái)實(shí)現(xiàn)獲得文件列表。
public static void getFiles(String path) { File file = new File(path); // 如果這個(gè)路徑是文件夾 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(); 就可以了。如果要包括文件中的文件名就可以用遞歸的方式。下面是兩個(gè)具體的實(shí)現(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); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis框架order by作為參數(shù)傳入時(shí)失效的解決
這篇文章主要介紹了mybatis框架order by作為參數(shù)傳入時(shí)失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06關(guān)于json解析多層嵌套并轉(zhuǎn)為對(duì)應(yīng)類(lèi)(List)
在進(jìn)行JSON解析時(shí),遇到多層嵌套結(jié)構(gòu)可通過(guò)遞歸或?qū)S脦?kù)來(lái)實(shí)現(xiàn),重要的是將嵌套的JSON對(duì)象準(zhǔn)確轉(zhuǎn)化為對(duì)應(yīng)的Java類(lèi),通常需要依賴如Gson或Jackson等庫(kù),將JSONObject轉(zhuǎn)為JavaBean時(shí),關(guān)注字段匹配與數(shù)據(jù)類(lèi)型轉(zhuǎn)換2024-10-10SpringBoot通過(guò)token實(shí)現(xiàn)用戶互踢功能(具體實(shí)現(xiàn))
所謂token,既用戶能夠在一定時(shí)間內(nèi)證明自己身份的一長(zhǎng)串字符串,這篇文章主要介紹了SpringBoot通過(guò)token實(shí)現(xiàn)用戶互踢功能,需要的朋友可以參考下2024-04-04Java中Quartz高可用定時(shí)任務(wù)快速入門(mén)
如果你想做定時(shí)任務(wù),有高可用方面的需求,或者僅僅想入門(mén)快,上手簡(jiǎn)單,那么選用它準(zhǔn)沒(méi)錯(cuò),感興趣的小伙伴們可以參考一下2022-04-04Spring Cloud重試機(jī)制與各組件的重試總結(jié)
這篇文章主要給大家介紹了關(guān)于Spring Cloud中重試機(jī)制與各組件的重試的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11示例解析java面向?qū)ο缶幊谭庋b與訪問(wèn)控制
這篇文章主要為大家介紹了java封裝與訪問(wèn)控制的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05探究Java常量本質(zhì)及三種常量池(小結(jié))
這篇文章主要介紹了探究Java常量本質(zhì)及三種常量池(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09