How to check the extension of a Java 7 Path

java, java-7, path

Solution

Java NIO's PathMatcher provides FileSystem.getPathMatcher(String syntaxAndPattern):

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

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

`.getFileName()` is required when your path contains more than one component.

See the Finding Files tutorial for details.

Problem

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?

Original source

Related problems