读书人

读条件目录上的所有满足条件的文件(包

发布时间: 2012-11-06 14:07:00 作者: rapoo

读条件目录下的所有满足条件的文件(包括子目录)

package io;import java.io.File;import java.util.ArrayList;import java.util.List;import java.util.regex.Pattern;/** * get the file path * @author  * */public class GetFile {private String regex;/** *  pathList is a list of the paths which match the regex */public List pathList = new ArrayList();public GetFile(String regex) {this.regex = regex;}/** * use pattern to filter the paths * attention:1.当我们要用类似"*"来表示任意的时候,使用".*"("."在java里表示任意字符) *  2.想使用"\\"来表示文件符号的时候,需要使用"\\\\" * TODO:these should be relized in the class which read the xml to get the regex * @param path * @return */private boolean match(String path) {Pattern pattern;pattern = Pattern.compile(regex);return pattern.matcher(path).matches();}/** * use a recursion to visit every file in the directory and the sub-directories * @param filePath */public void getFileList(String filePath) {File path = new File(filePath);File[] list;list = path.listFiles();for (int i = 0; i < list.length; i++) {if( list[i].isDirectory()){getFileList(list[i].getAbsolutePath());} else {if (match(list[i].getAbsolutePath())) {pathList.add(list[i].getAbsolutePath());}}}}public static void main(String[] args) {//GetFile f = new GetFile(".*.class");GetFile f = new GetFile(".*test\\\\.*.java");f.getFileList("E:\\opensource\\destroyMaula");for(int i=0; i < f.pathList.size(); i++) {System.out.println(f.pathList.get(i));}}}

读书人网 >软件架构设计

热点推荐