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?