From 17f78f8cd4f11863b6e23901b892974413aa1002 Mon Sep 17 00:00:00 2001 From: Will <5499819+guizhonglin@user.noreply.gitee.com> Date: Fri, 21 Nov 2025 14:42:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DFileNameUtil.extName=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=AF=B9=E7=89=B9=E6=AE=8A=E5=90=8E=E7=BC=80?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91=E8=BF=87=E4=BA=8E=E5=AE=BD?= =?UTF-8?q?=E6=9D=BE=E5=AF=BC=E8=87=B4=E8=AF=AF=E5=88=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/hutool/core/io/file/FileNameUtil.java | 2 +- .../java/cn/hutool/core/io/file/FileNameUtilTest.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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 f5a32b1c5..0550e0958 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 @@ -238,7 +238,7 @@ public class FileNameUtil { // issue#I4W5FS@Gitee final int secondToLastIndex = fileName.substring(0, index).lastIndexOf(StrUtil.DOT); final String substr = fileName.substring(secondToLastIndex == -1 ? index : secondToLastIndex + 1); - if (StrUtil.containsAny(substr, SPECIAL_SUFFIX)) { + if (StrUtil.equalsAny(substr, SPECIAL_SUFFIX)) { return substr; } 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 b06245d06..44d904e0d 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 @@ -19,4 +19,12 @@ public class FileNameUtilTest { final String s = FileNameUtil.mainName("abc.tar.gz"); assertEquals("abc", s); } + + @Test + public void extNameAndMainNameBugTest() { + // 正确,输出前缀为 "app-v2.3.1-star" + assertEquals("app-v2.3.1-star",FileNameUtil.mainName("app-v2.3.1-star.gz")); + // 当前代码会失败,预期后缀结果 "gz",但是输出 "star.gz" + assertEquals("gz", FileNameUtil.extName("app-v2.3.1-star.gz")); + } }