diff --git a/net/src/main/java/com/zfoo/net/util/security/ZipUtils.java b/net/src/main/java/com/zfoo/net/util/security/ZipUtils.java index f8aebea6..5836deea 100644 --- a/net/src/main/java/com/zfoo/net/util/security/ZipUtils.java +++ b/net/src/main/java/com/zfoo/net/util/security/ZipUtils.java @@ -66,6 +66,33 @@ public abstract class ZipUtils { return baos.toByteArray(); } + // ----------------------------------------------------------------------------------------------------------------- + + public static void zip(String[] sourceFilesPath, String zipFilePath) { + FileOutputStream fos = null; + ZipOutputStream zipOut = null; + try { + fos = new FileOutputStream(zipFilePath); + zipOut = new ZipOutputStream(fos); + for (var sourceFile : sourceFilesPath) { + var fileToZip = new File(sourceFile); + if (fileToZip.isHidden()) { + continue; + } + var fis = new FileInputStream(fileToZip); + ZipEntry zipEntry = new ZipEntry(fileToZip.getName()); + zipOut.putNextEntry(zipEntry); + IOUtils.copy(fis, zipOut); + IOUtils.closeIO(fis); + } + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + IOUtils.closeIO(zipOut, fos); + } + } + + public static void unzip(String zipFilePath, String destDirectory) { FileUtils.createDirectory(destDirectory); FileInputStream fileInputStream = null; diff --git a/net/src/test/java/com/zfoo/net/util/security/ZipTest.java b/net/src/test/java/com/zfoo/net/util/security/ZipTest.java index dedabf66..16efa598 100644 --- a/net/src/test/java/com/zfoo/net/util/security/ZipTest.java +++ b/net/src/test/java/com/zfoo/net/util/security/ZipTest.java @@ -45,8 +45,16 @@ public class ZipTest { Assert.assertEquals(new String(bytes), str); } + @Test - public void unzipTest() throws IOException { + public void zipTest() { + var sourceFiles = new String[]{"D:\\Project\\aaa\\alibaba.mjs", "D:\\Project\\aaa\\baidu.mjs" + , "D:\\Project\\aaa\\google.mjs", "D:\\Project\\aaa\\openai.mjs", "D:\\Project\\aaa\\tencent.mjs"}; + ZipUtils.zip(sourceFiles, "D:\\Project\\aaa\\ai-simulator.zip"); + } + + @Test + public void unzipTest() { ZipUtils.unzip("D:\\Project\\aaa\\ai-simulator.zip", "D:\\Project\\aaa\\bbb"); } }