Search code examples
javanio

Java 7 nio list directory with wildcard


I'd like to find a file in a directory using wildcard. I have this in Java 6 but want to convert the code to Java 7 NIO:

 File dir = new File(mydir); 
 FileFilter fileFilter = new WildcardFileFilter(identifier+".*");
 File[] files = dir.listFiles(fileFilter);

There is no WildcardFileFilter, and I've played around a bit with globs.


Solution

  • You can pass a glob to a DirectoryStream

    import java.nio.file.DirectoryStream;
    import java.nio.file.FileSystems;
    import java.nio.file.Files;
    import java.nio.file.Path;
    ...
    
    Path dir = FileSystems.getDefault().getPath( filePath );
    DirectoryStream<Path> stream = Files.newDirectoryStream( dir, "*.{txt,doc,pdf,ppt}" );
    for (Path path : stream) {
        System.out.println( path.getFileName() );
    }
    stream.close();