ソースを参照

add exception

Looly 5 年 前
コミット
93951af07e

+ 5 - 1
hutool-core/src/main/java/cn/hutool/core/util/ZipUtil.java

@@ -388,7 +388,8 @@ public class ZipUtil {
 	 * @since 3.2.2
 	 */
 	public static File unzip(File zipFile, Charset charset) throws UtilException {
-		return unzip(zipFile, FileUtil.file(zipFile.getParentFile(), FileUtil.mainName(zipFile)), charset);
+		final File destDir = FileUtil.file(zipFile.getParentFile(), FileUtil.mainName(zipFile));
+		return unzip(zipFile, destDir, charset);
 	}
 
 	/**
@@ -459,6 +460,9 @@ public class ZipUtil {
 	 */
 	@SuppressWarnings("unchecked")
 	public static File unzip(ZipFile zipFile, File outFile) throws IORuntimeException {
+		if(outFile.exists() && outFile.isFile()){
+			throw new UtilException("Target path [{}] exist!", outFile.getAbsolutePath());
+		}
 		try {
 			final Enumeration<ZipEntry> em = (Enumeration<ZipEntry>) zipFile.entries();
 			ZipEntry zipEntry;

+ 4 - 5
hutool-core/src/test/java/cn/hutool/core/util/ZipUtilTest.java

@@ -1,13 +1,12 @@
 package cn.hutool.core.util;
 
-import java.io.File;
-
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.lang.Console;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.lang.Console;
+import java.io.File;
 
 /**
  * {@link ZipUtil}单元测试
@@ -36,7 +35,7 @@ public class ZipUtilTest {
 		File unzip = ZipUtil.unzip("f:/test/各种资源.zip", "f:/test/各种资源", CharsetUtil.CHARSET_GBK);
 		Console.log(unzip);
 	}
-	
+
 	@Test
 	@Ignore
 	public void unzipFromStreamTest() {