如何在特定目录中扫描具有特定扩展名的文件?

时间:2019-06-13 15:39:20

标签: java

说我的系统上某处有一个特定的目录。 C://Users/Public/Local/AppData/saves

我想阅读整个目录,并检查其中的文件是否具有特定的扩展名。例如说.json。 如果目录中包含多个扩展名为.json的文件,请列出所有带有其名称的文件。

我可以使用 File file = new File(myPath); 并连续进行file.exists(),但是如何扫描整个目录中的文件? 这就是我的困惑。

任何帮助将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:0)

在Java 8中,您可以使用Files.walk

Files.walk(Paths.get("/path/to/folder/"))
.filter(p -> p.toString().endsWith(".json"))
.forEach(x -> System.out.println(x.getFileName()));

答案 1 :(得分:0)

老派的可读性文件名过滤器:

    File[] jsonFiles=new File("sourcePath").listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File arg0, String name) {
            return name.endsWith(".json");
        }
    });

或者如果您想使用lambda的东西: 参见java 8 lambda expression for FilenameFilter