? WildcardFilter

java.lang.Object
org.apache.commons.io.filefilter.AbstractFileFilter
org.apache.commons.io.filefilter.WildcardFilter
????????:
FileFilter, FilenameFilter, Serializable, FileVisitor<Path>, PathFilter, PathVisitor, IOFileFilter

????
Use WildcardFileFilter. Deprecated as this class performs directory filtering which it shouldn't do, but that can't be removed due to compatibility.
Filters files using the supplied wildcards.

This filter selects files, but not directories, based on one or more wildcards and using case-sensitive comparison.

The wildcard matcher uses the characters '?' and '*' to represent a single or multiple wildcard characters. This is the same as often found on Dos/Unix command lines. The extension check is case-sensitive. See FilenameUtils.wildcardMatch(String, String) for more information.

For example:

Using Classic IO

 File dir = new File(".");
 FileFilter fileFilter = new WildcardFilter("*test*.java~*~");
 File[] files = dir.listFiles(fileFilter);
 for (String file : files) {
     System.out.println(file);
 }
 

Using NIO

 final Path dir = Paths.get("");
 final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new WildcardFilter("*test*.java~*~"));
 //
 // Walk one dir
 Files.walkFileTree(dir, Collections.emptySet(), 1, visitor);
 System.out.println(visitor.getPathCounters());
 System.out.println(visitor.getFileList());
 //
 visitor.getPathCounters().reset();
 //
 // Walk dir tree
 Files.walkFileTree(dir, visitor);
 System.out.println(visitor.getPathCounters());
 System.out.println(visitor.getDirList());
 System.out.println(visitor.getFileList());
 
???????:
1.1
????: