我发现所有带有子目录的 FileNameFilter 东西有点复杂。我现在用这个:
FileUtils.iterateFiles(rootdir, filefilter, dirfilter);
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
<type>jar</type>
</dependency>
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.apache.commons.io.filefilter.WildcardFileFilter;
import java.util.Iterator;
File inputDir = new File(inputPath.toString());
Iterator<File> matchesIterator = FileUtils.iterateFiles(
inputDir, new WildcardFileFilter("somefilenamefilter*.xml"), TrueFileFilter.TRUE);
while (matchesIterator.hasNext()) {
File someFile = matchesIterator .next();
...
}