chore[zip]: zip

This commit is contained in:
godotg committed 2024-05-13 19:53:29 +08:00
1 parent 7b98bf2190
commit 86c70873a2
2 files changed
+29 -24

No files matched your search

@@ -16,6 +16,7 @@ import com.zfoo.protocol.util.FileUtils;
import com.zfoo.protocol.util.IOUtils;
import java.io.*;
import java.nio.charset.Charset;
import java.util.zip.*;
/**
@@ -94,29 +95,34 @@ public abstract class ZipUtils {
public static void unzip(String zipFilePath, String destDirectory) {
FileUtils.createDirectory(destDirectory);
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(zipFilePath);
var zipIn = new ZipInputStream(fileInputStream);
var entry = zipIn.getNextEntry();
// 遍历ZIP文件中的所有条目
while (entry != null) {
var filePath = destDirectory + File.separator + entry.getName();
if (!entry.isDirectory()) {
// 如果条目是文件,则解压该文件
FileUtils.writeInputStreamToFile(new File(filePath), zipIn);
} else {
// 如果条目是目录,则创建目录
FileUtils.createDirectory(filePath);
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
} catch (Exception e) {
IOUtils.closeIO(fileInputStream);
unzip(FileUtils.openInputStream(new File(zipFilePath)), destDirectory);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static void unzip(InputStream zipFileInputStream, String destDirectory) throws IOException {
FileUtils.createDirectory(destDirectory);
var zipIn = new ZipInputStream(zipFileInputStream);
var entry = zipIn.getNextEntry();
// 遍历ZIP文件中的所有条目
while (entry != null) {
var filePath = destDirectory + File.separator + entry.getName();
if (!entry.isDirectory()) {
// 如果条目是文件,则解压该文件
var fileOutputStream = FileUtils.openOutputStream(new File(filePath), false);
IOUtils.copy(zipIn, fileOutputStream);
IOUtils.closeIO(fileOutputStream);
} else {
// 如果条目是目录,则创建目录
FileUtils.createDirectory(filePath);
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
}
}
@@ -48,9 +48,8 @@ public class ZipTest {
@Test
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");
var sourceFiles = new String[]{"./README.md","./README_CN.md"};
ZipUtils.zip(sourceFiles, "./ai-simulator.zip");
}
@Test