I'd like to check if a Path (introduced in Java 7) ends with a certain extension. I tried the endsWith()
method like so:
Path path = Paths.get("foo/bar.java")
if (path.endsWith(".java")){
//Do stuff
}
However, this doesn't seem to work because path.endsWith(".java")
returns false. It seems the endsWith()
method only returns true if there is a complete match for everything after the final directory separator (e.g. bar.java
), which isn't practical for me.
So how can I check the file extension of a Path?
Java NIO's PathMatcher provides FileSystem.getPathMatcher(String syntaxAndPattern):
PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.java");
Path filename = ...;
if (matcher.matches(filename)) {
System.out.println(filename);
}
See the Finding Files tutorial for details.