java – 获取tar.gz等特殊情况的文件扩展名
作者:互联网
我需要从文件名中提取扩展名.
我知道可以通过使用filePath.lastIndexOf(‘.’)或使用Apache commons-io中的FilenameUtils.getExtension(filePath)等实用程序方法,对.gz或.tar等单个扩展进行此操作.
但是,如果我的文件扩展名为.tar.gz,该怎么办?如何管理包含扩展名的文件.字符?
解决方法:
如果您知道哪些扩展名很重要,您可以直接检查它们.您将拥有已知扩展的集合,如下所示:
List<String> EXTS = Arrays.asList("tar.gz", "tgz", "gz", "zip");
您可以获得(第一个)最长匹配扩展名,如下所示:
String getExtension(String fileName) {
String found = null;
for (String ext : EXTS) {
if (fileName.endsWith("." + ext)) {
if (found == null || found.length() < ext.length()) {
found = ext;
}
}
}
return found;
}
所以调用getExtension(“file.tar.gz”)会返回“tar.gz”.
如果你有混合大小写的名字,也许可以尝试在循环中将检查更改为filename.toLowerCase().endsWith(“.”ext).
标签:java,file,utility-method 来源: https://codeday.me/bug/20190517/1121930.html