1.[代码][Java]代码
import java.io.File;
import java.io.FilenameFilter;
import java.util.regex.Pattern;
//search all .java files in the "E:\Test" directory
public class RecurSearchJavaFile {
public static void main(String[] args) {
RecurSearchJavaFile dl = new RecurSearchJavaFile();
File path = new File("E:\\Test");
dl.search(path);
}
//recursive search all .java files
private void search(File path) {
File[] files = path.listFiles();
//search all .java files in the directory of "E:\Test",
//but not include those .java files occurs in the sub-directory
if(path.getAbsolutePath().equalsIgnoreCase("E:\\Test") ){
listFilteredFileName(path);
}
//search all .java files in the sub-directory
for (File file : files) {
if (file.isDirectory()) {
//File dir = file.getAbsoluteFile();
listFilteredFileName(file);
search(file);
}
}
}
//show .java files by directory
private void listFilteredFileName(File file) {
String[] files = file.list(new DirFilter("\\w+.java"));
for (String fileName: files) {
System.out.println(fileName + " ");
}
}
}
//to match a given regex
class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex) {
pattern = Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
}
/*output result*/
Hello.java
World.java
Any.java
fodler1_1File1.java
folder1_1_1File1.java
folder2File1.java
folder2File2.java
hihi.java