如何检查Java 7path的扩展
我想检查一个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,这对我来说是不实用的。 
那么如何检查Path的文件扩展名?
Java NIO的PathMatcher提供了FileSystem.getPathMatcher(String syntaxAndPattern) :
 PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.java"); Path filename = ...; if (matcher.matches(filename)) { System.out.println(filename); } 
有关详细信息,请参阅查找文件教程。
  Path类没有“扩展”的概念,可能是因为文件系统本身没有它。 这就是为什么你需要检查它的String表示,看看它是否以四个 五个string.java结尾。 请注意,如果要覆盖混合大小写,例如".JAVA"和".Java" ,则需要与简单endsWith进行比较。 
 path.toString().toLowerCase().endsWith(".java"); 
直接在Path对象本身上没有办法做到这一点。
有两个选项我可以看到:
- 将path转换为文件并调用由File.getName()返回的String上的endsWith
- 在path上调用toString并在该String上调用endsWith。