1. 程式人生 > >java讀取一個路徑下的所有檔案

java讀取一個路徑下的所有檔案

    最近使用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:這裡是預設輸入路徑下面全都是檔案,而沒有資料夾,如果需要繼續訪問所輸入路徑下的資料夾,可以將這些程式碼進行封裝,進行遞迴呼叫,這樣就可以實現訪問輸入路徑下的子檔案及子資料夾下的檔案,直到所有被訪問到的都是檔案而不是資料夾。