我想检查Path(在Java 7中引入)是否以某个扩展名结尾。我尝试了endsWith()方法,如下所示:

Path path = Paths.get("foo/bar.java")
if (path.endsWith(".java")){
    //Do stuff
}

但是,这似乎不起作用,因为path.endsWith(".java")返回false。似乎endsWith()方法仅在最终目录分隔符之后的所有内容都完全匹配(例如bar.java)时才返回true,这对我来说并不实用。

那么,如何检查路径的文件扩展名?

最佳答案

Java NIO的PathMatcher提供了FileSystem.getPathMatcher(String syntaxAndPattern):

PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.java");

Path filename = ...;
if (matcher.matches(filename)) {
    System.out.println(filename);
}

有关详细信息,请参见Finding Files教程。

08-18 13:37
查看更多