| Java: Search For Files In A Directory |
| Thursday, 06 May 2010 18:54 |
|
Here's an example of how to search for a '.java' files in a directory.
import java.io.File;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class mymain
{
public static void main(String[] args) {
File curdir = new File(".");
if (curdir.isDirectory() == false) {
System.err.println("Error: '" + curdir.getAbsolutePath() + "' is not a directory.");
return;
} else {
System.out.println("Search directory: " + curdir.getAbsoluteFile());
}
Pattern p = Pattern.compile("([\\.]java)$");
ArrayList<File> files = FindFilesInDir(p, curdir);
System.out.println("\tFound " + files.size() + " files");
for (File f : files) {
System.out.println("\t\t" + f.getAbsolutePath());
}
}
public static ArrayList<File> FindFilesInDir(Pattern p, File dir) {
ArrayList<File> retval = new ArrayList<File>();
if (dir.isDirectory() == false) {
return retval;
}
File contents[] = dir.listFiles();
for (int i = 0; i < contents.length; i += 1) {
File child = contents[i];
if (child.isDirectory()) {
ArrayList<File> append = FindFilesInDir(p, child);
retval.addAll(append);
}
if (child.isFile()) {
Matcher m = p.matcher(child.getName());
if (m.find() == true) {
retval.add(child);
}
}
}
return retval;
}
}
|