I have a directory, and inside it are files are named \"a_id_XXX.zip\".
How do check if a file exists given an id and File dir
This solution generalizes on Bohemian's answer. It uses regular expressions and also replaces the inner class with Java 8 lambda expressions. Thanks @Bohemian for the original implementation.
import java.io.File;
public class FileFinder {
public static void main(String[] args){
File directory = new File("D:\\tmp");
String id = "20140430104033";
for (File f : findFilenamesWithId(id, directory)){
System.out.println(f.getAbsoluteFile());
}
}
/** Finds files in the specified directory whose names are formatted
as "a_id_ID.zip" */
public static File[] findFilenamesWithId(String ID, File dir) {
return findFilenamesMatchingRegex("^a_id_" + ID + "\\.zip$", dir);
}
/** Finds files in the specified directory whose names match regex */
public static File[] findFilenamesMatchingRegex(String regex, File dir) {
return dir.listFiles(file -> file.getName().matches(regex));
}
}