如何检查Java 7路径的扩展

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我想检查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班没有“extension”的概念,可能是因为文件系统本身不拥有它。这就是为什么你需要检查它的String表示,并看看它是否以四个 字符字符串结尾.java。请注意,endsWith如果您想要覆盖混合大小写,例如".JAVA"和,则需要使用不同于简单的比较".Java"

path.toString().toLowerCase().endsWith(".java");

扫码关注云+社区