我想检查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教程。