//: mypackage1/SortedDirList.java // 目录列表的筛选 package mypackage1; import java.io.*; import java.util.Arrays; import java.util.regex.*; public class SortedDirList { private File path; String[] list; /** * 接收一个File的构造方法 */ public SortedDirList(File path) { this.path = path; } /** * 接收文件路径的构造方法 * @param pathName */ public SortedDirList(String pathName) { this(new File(pathName)); } /** * 取得所有文件目录列表 * @return 所有文件目录列表 */ public String[] list() { list = path.list(); Arrays.sort(list); return list; } /** * 取得筛选后的文件目录列表 * @param regex 正则表达式 * @return 筛选后的文件目录列表 */ public String[] list(String regex) { final Pattern pattern = Pattern.compile(regex); FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { return pattern.matcher(name).matches(); } }; list = path.list(filter); Arrays.sort(list); return list; } public static void main(String[] args) { SortedDirList sortedDirList = new SortedDirList("./src/mypackage1"); System.out.println(Arrays.asList(sortedDirList.list())); System.out.println(Arrays.asList(sortedDirList.list("D.*//.java"))); } } ///:~