summaryrefslogtreecommitdiff
path: root/src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java
diff options
context:
space:
mode:
authorKeuin <[email protected]>2020-12-29 10:06:01 +0800
committerKeuin <[email protected]>2020-12-29 10:06:01 +0800
commit82e3986045ac7eaca6aaa290fb2283fd6c6c901a (patch)
tree2a1783e8ded2d5dbe9b7365a9b5f71757310e046 /src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java
parentfd9124f475422f62691fb542c3f8f35790b65d9b (diff)
Support specifying zip compression level (not finished)
Diffstat (limited to 'src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java')
-rw-r--r--src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java b/src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java
index c670cf1..285fe83 100644
--- a/src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java
+++ b/src/main/java/com/keuin/kbackupfabric/util/ZipUtil.java
@@ -7,6 +7,8 @@ import java.io.*;
import java.util.Enumeration;
import java.util.zip.*;
+import static java.util.zip.Deflater.DEFAULT_COMPRESSION;
+
public final class ZipUtil {
/**
@@ -70,7 +72,7 @@ public final class ZipUtil {
* @throws IOException IO Error
* @throws ZipUtilException General exception, such as loop recursion.
*/
- public static void makeBackupZip(String srcPath, String zipPath, String zipFileName, BackupMetadata backupMetadata) throws IOException, ZipUtilException {
+ public static void makeBackupZip(String srcPath, String zipPath, String zipFileName, BackupMetadata backupMetadata, int zipLevel) throws IOException, ZipUtilException {
if (srcPath == null || zipPath == null || zipFileName == null || backupMetadata == null || srcPath.isEmpty() || zipPath.isEmpty() || zipFileName.isEmpty()) {
throw new IllegalArgumentException("Parameter for zip() contains null.");
}
@@ -107,6 +109,7 @@ public final class ZipUtil {
checkedOutputStream = new CheckedOutputStream(new FileOutputStream(zipFile), new CRC32());
zipOutputStream = new ZipOutputStream(checkedOutputStream);
+ zipOutputStream.setLevel(zipLevel);
// If with backup metadata, we serialize it and write it into file "kbackup_metadata"
ZipEntry metadataEntry = new ZipEntry(BackupMetadata.metadataFileName);
@@ -140,6 +143,10 @@ public final class ZipUtil {
}
}
+ public static void makeBackupZip(String srcPath, String zipPath, String zipFileName, BackupMetadata backupMetadata) throws IOException, ZipUtilException {
+ makeBackupZip(srcPath, zipPath, zipFileName, backupMetadata, DEFAULT_COMPRESSION);
+ }
+
/**
* 解压缩zip包
*