mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-14 06:18:16 +00:00
chore[zip]: zip
This commit is contained in:
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
|
||||
|
||||
Reference in new issue
Block a user