【问题标题】:How to scan a specific directory for files with a specific extension?如何扫描特定目录以查找具有特定扩展名的文件?
【发布时间】:2019-06-13 15:39:20
【问题描述】:

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

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

我可以使用 File file = new File(myPath); 并连续执行file.exists(),但如何扫描整个目录以查找文件? 这是我感到困惑的地方。

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

【问题讨论】:

标签: java


【解决方案1】:

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

    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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      最近更新 更多