From e354ea93cc98a0d05ac921191ee24bc976c61223 Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 9 Oct 2022 18:37:21 +0800 Subject: [PATCH] fix doc --- .../main/java/cn/hutool/core/io/file/FileNameUtil.java | 8 ++++++++ .../java/cn/hutool/core/io/file/FileNameUtilTest.java | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileNameUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileNameUtil.java index 587ca2c9e..f5a32b1c5 100755 --- a/hutool-core/src/main/java/cn/hutool/core/io/file/FileNameUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileNameUtil.java @@ -174,6 +174,14 @@ public class FileNameUtil { if (0 == len) { return fileName; } + + //issue#2642,多级扩展名的主文件名 + for (final CharSequence specialSuffix : SPECIAL_SUFFIX) { + if(StrUtil.endWith(fileName, "." + specialSuffix)){ + return StrUtil.subPre(fileName, len - specialSuffix.length() - 1); + } + } + if (CharUtil.isFileSeparator(fileName.charAt(len - 1))) { len--; } diff --git a/hutool-core/src/test/java/cn/hutool/core/io/file/FileNameUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/io/file/FileNameUtilTest.java index 2d254b4d8..915431766 100755 --- a/hutool-core/src/test/java/cn/hutool/core/io/file/FileNameUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/file/FileNameUtilTest.java @@ -13,4 +13,10 @@ public class FileNameUtilTest { name = FileNameUtil.cleanInvalid("\r1\r\n2\n"); Assert.assertEquals("12", name); } + + @Test + public void mainNameTest() { + final String s = FileNameUtil.mainName("abc.tar.gz"); + Assert.assertEquals("abc", s); + } }