编程语言
首页 > 编程语言> > java – 获取tar.gz等特殊情况的文件扩展名

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