1. 程式人生 > >列出指定目錄的下的指定檔案集 keyword關鍵字篩選

列出指定目錄的下的指定檔案集 keyword關鍵字篩選

在做sql調優時需要從xml中抽出sql進行優化,所以遍歷專案取到mybatis/ibatis的sql xml檔案集

方法如下:

public static File[] searchFile(File folder, final String keyWord) {// 遞迴查詢包含關鍵字的檔案  
   
        File[] subFolders = folder.listFiles(new FileFilter() {// 運用內部匿名類獲得檔案  
            @Override  
            public boolean accept(File pathname) {// 實現FileFilter類的accept方法  
                if (pathname.isDirectory()  
                        || (pathname.getName().toLowerCase().contains(keyWord.toLowerCase())))// 目錄或檔案包含關鍵字  
                    return true;  
                return false;  
            }  
        });  
   
        List<File> result = new ArrayList<File>();// 宣告一個集合  
        for (int i = 0; i < subFolders.length; i++) {// 迴圈顯示資料夾或檔案  
            if (subFolders[i].isFile()) {// 如果是檔案則將檔案新增到結果列表中  
                result.add(subFolders[i]);  
            } else {// 如果是資料夾,則遞迴呼叫本方法,然後把所有的檔案加到結果列表中  
                File[] foldResult = searchFile(subFolders[i], keyWord);  
                for (int j = 0; j < foldResult.length; j++) {// 迴圈顯示檔案  
                    result.add(foldResult[j]);// 檔案儲存到集合中  
                }  
            }  
        }  
   
        File files[] = new File[result.size()];// 宣告檔案陣列,長度為集合的長度  
        result.toArray(files);// 集合陣列化  
        return files;  
} 
希望對有需要的朋友有所幫助
方法出處:http://blog.csdn.net/visant/article/details/53693572