Java:通过掩码查找所有文件和目录

时间:2017-10-26 12:40:11

标签: java file

如何在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))看起来非常有用,并且希望得到支持。

2 个答案:

答案 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);
}