带有通配符的Java 7 nio列表目录

我想使用通配符在目录中找到一个文件。 我在Java 6中有这个,但想将代码转换为Java 7 NIO:

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

没有WildcardFileFilter ,我玩了很多。

您可以将glob传递给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 stream = Files.newDirectoryStream( dir, "*.{txt,doc,pdf,ppt}" ); for (Path path : stream) { System.out.println( path.getFileName() ); } stream.close(); 

您可以使用带有glob的目录流 :

 DirectoryStream stream = Files.newDirectoryStream(dir, identifier+".*") 

然后迭代文件路径:

 for (Path entry: stream) { }