java讀取一個路徑下的所有檔案
阿新 • • 發佈:2019-02-08
最近使用ssh框架的時候需要把字尾為.hbm.xml的檔案配置進spring的配置檔案,但是由於這樣以.hbm.xml結尾的檔案太多,不可能一個一個去寫,於是我便嘗試使用java去自動生成。下面直接貼程式碼:
import java.util.Scanner; import java.io.File; public class Test { public static void main(String[] args){ int num=0; try{ Scanner sc=new Scanner(System.in); System.out.println("請輸入路徑:"); String filepath = sc.nextLine();//讀取字串型輸入filepath sc.close(); File file= new File(filepath); if(!file.isDirectory()){ //通過isDirectory()判斷當前路徑是不是資料夾 System.out.println("這不是一個資料夾的路徑"); } else if(file.isDirectory()){ String[] filelist = file.list(); //獲取當前資料夾下的所有子檔案及子資料夾 儲存在filelist System.out.println("這個資料夾長度為"+filelist.length); for(int i = 0; i< filelist.length ; i++){ File readfile = new File(filepath+"\\"+filelist[i]); //將輸入路徑及其子路徑相連線 if(!readfile.isDirectory()){ if(filelist[i].endsWith("hbm.xml")){ //如果是以hbm.xml就把它生成標籤 System.out.println("<value>"+filelist[i]+"</value>"); num++; } } } } } catch(Exception e){ System.out.println(e.getMessage()); } System.out.println(num); } }
通過這段程式碼就可以把輸入路徑的所有以hbm.xml的檔案生成<value></value>標籤,將輸出的標籤複製到Spring配置檔案就好了。
ps:這裡是預設輸入路徑下面全都是檔案,而沒有資料夾,如果需要繼續訪問所輸入路徑下的資料夾,可以將這些程式碼進行封裝,進行遞迴呼叫,這樣就可以實現訪問輸入路徑下的子檔案及子資料夾下的檔案,直到所有被訪問到的都是檔案而不是資料夾。