如何在Java中通过掩码迭代所有文件?例如,有一个像
这样的外卡的面具D:\work\mytestfolder\temp\*.txt
需要获取上面目录中所有*.txt
个文件的集合(或迭代器或其他任何内容)。
更多细节。想要处理大量文件,这里很方便定义一组掩码,如上所示。 GLOBE语法(https://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html#getPathMatcher(java.lang.String))看起来非常有用,并且希望得到支持。
答案 0 :(得分:1)
无需创建显式PathMatcher。只需使用Files.newDirectoryStream:
try (DirectoryStream<Path> dir = Files.newDirectoryStream(
Paths.get("D:\\work\\mytestfolder\\temp"), "*.txt")) {
for (Path entry : dir) {
// ...
}
}
答案 1 :(得分:-1)
File dir = new File("E:/Test");
File [] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".chm");
}
});
for (File xmlfile : files) {
System.out.println(xmlfile);
}