From 967f3d2ca09808ea528b3cbcd7745e61109d2d98 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 31 Jul 2024 00:36:07 +0800 Subject: [PATCH] =?UTF-8?q?CompressUtil.createExtractor=E6=94=AF=E6=8C=81t?= =?UTF-8?q?gz=E8=87=AA=E5=8A=A8=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/extra/compress/CompressUtil.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/compress/CompressUtil.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/compress/CompressUtil.java index 34718fd27..b1a047da2 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/compress/CompressUtil.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/compress/CompressUtil.java @@ -12,6 +12,12 @@ package org.dromara.hutool.extra.compress; +import org.apache.commons.compress.archivers.ArchiveStreamFactory; +import org.apache.commons.compress.archivers.StreamingNotSupportedException; +import org.apache.commons.compress.compressors.CompressorException; +import org.apache.commons.compress.compressors.CompressorInputStream; +import org.apache.commons.compress.compressors.CompressorOutputStream; +import org.apache.commons.compress.compressors.CompressorStreamFactory; import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.extra.compress.archiver.Archiver; @@ -20,12 +26,6 @@ import org.dromara.hutool.extra.compress.archiver.StreamArchiver; import org.dromara.hutool.extra.compress.extractor.Extractor; import org.dromara.hutool.extra.compress.extractor.SevenZExtractor; import org.dromara.hutool.extra.compress.extractor.StreamExtractor; -import org.apache.commons.compress.archivers.ArchiveStreamFactory; -import org.apache.commons.compress.archivers.StreamingNotSupportedException; -import org.apache.commons.compress.compressors.CompressorException; -import org.apache.commons.compress.compressors.CompressorInputStream; -import org.apache.commons.compress.compressors.CompressorOutputStream; -import org.apache.commons.compress.compressors.CompressorStreamFactory; import java.io.File; import java.io.InputStream; @@ -178,16 +178,20 @@ public class CompressUtil { * @param file 归档文件 * @return {@link Extractor} */ - public static Extractor createExtractor(final Charset charset, final String archiverName, final File file) { + public static Extractor createExtractor(final Charset charset, String archiverName, final File file) { if (ArchiveStreamFactory.SEVEN_Z.equalsIgnoreCase(archiverName)) { return new SevenZExtractor(file); } - try { - if (StrUtil.isBlank(archiverName) && file.getName().toLowerCase().endsWith(".tgz")) { + + if(StrUtil.isBlank(archiverName)){ + final String name = file.getName().toLowerCase(); + if(name.endsWith(".tgz")){ archiverName = "tgz"; - } else if (StrUtil.isBlank(archiverName) && file.getName().toLowerCase().endsWith(".tar.gz")) { + } else if(name.endsWith(".tar.gz")){ archiverName = "tar.gz"; } + } + try { return new StreamExtractor(charset, archiverName, file); } catch (final CompressException e) { final Throwable cause = e.getCause();