How to check a file if exists with wildcard in Java?

前端 未结 7 686
谎友^
谎友^ 2020-11-27 21:34

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

7条回答
  •  误落风尘
    2020-11-27 21:42

    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));
        }
    }
    

提交回复
热议问题