【发布时间】:2016-01-09 21:17:44
【问题描述】:
在 Java 中获取文件扩展名的可靠方法是什么?
我不是在谈论在File.getName() 上执行substring / lastIndexOf .,因为它对复杂的扩展名无用,例如.tar.gz 等。 (这是所有库(Commons IO、Guava 等)似乎都在做的事情。我正在寻找一种更复杂/可靠的方法来返回真正的扩展。
虽然这听起来像这里的许多其他问题的重复,但它并不相同。其他发帖人对lastIndexOf . 的简单回答很满意。这打破了扩展由多个点组成的情况。
难道没有简单的方法可以用来返回这个吗?
任何提示将不胜感激。
【问题讨论】:
-
从技术上讲,
.tar.gz是.gz的.tarmethinks。 -
请定义“真正的扩展”。
-
只要
.可以由用户输入作为文件名的一部分,怎么可能?没有人阻止我创建一个名为my.file.name.that.has.dots.txt的文件——谁能知道扩展名和文件名是什么? -
@Thomas 这就是为什么 OP 提到
lastIndexOf将返回最后一个点的位置。