Skip to content

Commit b80ed90

Browse files
vunamtientienvn4
andauthored
[BAEL-5033] How to create Password-protected Zip files and Unzip them in Java (#11066)
Co-authored-by: tienvn4 <tienvn4@ghtk.co>
1 parent d36b90a commit b80ed90

7 files changed

Lines changed: 118 additions & 0 deletions

File tree

libraries-io/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@
2929
<artifactId>commons-vfs2</artifactId>
3030
<version>${vfs.version}</version>
3131
</dependency>
32+
<dependency>
33+
<groupId>net.lingala.zip4j</groupId>
34+
<artifactId>zip4j</artifactId>
35+
<version>2.9.0</version>
36+
</dependency>
3237
</dependencies>
3338

3439
<properties>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.baeldung.java.io.zip4j;
2+
3+
import net.lingala.zip4j.ZipFile;
4+
import net.lingala.zip4j.exception.ZipException;
5+
import net.lingala.zip4j.model.ZipParameters;
6+
import net.lingala.zip4j.model.enums.EncryptionMethod;
7+
8+
import java.io.File;
9+
import java.util.Arrays;
10+
11+
public class CreateSplitZipFile {
12+
13+
public static void main(String[] args) throws ZipException {
14+
ZipParameters zipParameters = new ZipParameters();
15+
zipParameters.setEncryptFiles(true);
16+
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
17+
ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
18+
int splitLength = 1024 * 1024 * 10; //10MB
19+
zipFile.createSplitZipFile(Arrays.asList(new File("aFile.txt")), zipParameters, true, splitLength);
20+
zipFile.createSplitZipFileFromFolder(new File("/users/folder_to_add"), zipParameters, true, splitLength);
21+
}
22+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.baeldung.java.io.zip4j;
2+
3+
import net.lingala.zip4j.ZipFile;
4+
import net.lingala.zip4j.exception.ZipException;
5+
6+
public class ExtractAllFile {
7+
8+
public static void main(String[] args) throws ZipException {
9+
ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
10+
zipFile.extractAll("/destination_directory");
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.baeldung.java.io.zip4j;
2+
3+
import net.lingala.zip4j.ZipFile;
4+
import net.lingala.zip4j.exception.ZipException;
5+
6+
public class ExtractSingleFile {
7+
8+
public static void main(String[] args) throws ZipException {
9+
ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
10+
zipFile.extractFile("aFile.txt", "/destination_directory");
11+
}
12+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.baeldung.java.io.zip4j;
2+
3+
import net.lingala.zip4j.ZipFile;
4+
import net.lingala.zip4j.exception.ZipException;
5+
import net.lingala.zip4j.model.ZipParameters;
6+
import net.lingala.zip4j.model.enums.EncryptionMethod;
7+
8+
import java.io.File;
9+
10+
public class ZipFolder {
11+
12+
public static void main(String[] args) throws ZipException {
13+
ZipParameters zipParameters = new ZipParameters();
14+
zipParameters.setEncryptFiles(true);
15+
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
16+
ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
17+
zipFile.addFolder(new File("/users/folder_to_add"), zipParameters);
18+
}
19+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.baeldung.java.io.zip4j;
2+
3+
import net.lingala.zip4j.ZipFile;
4+
import net.lingala.zip4j.exception.ZipException;
5+
import net.lingala.zip4j.model.ZipParameters;
6+
import net.lingala.zip4j.model.enums.EncryptionMethod;
7+
8+
import java.io.File;
9+
import java.util.Arrays;
10+
import java.util.List;
11+
12+
public class ZipMultiFile {
13+
14+
public static void main(String[] args) throws ZipException {
15+
ZipParameters zipParameters = new ZipParameters();
16+
zipParameters.setEncryptFiles(true);
17+
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
18+
19+
List<File> filesToAdd = Arrays.asList(
20+
new File("aFile.txt"),
21+
new File("bFile.txt")
22+
);
23+
24+
ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
25+
zipFile.addFiles(filesToAdd, zipParameters);
26+
}
27+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.baeldung.java.io.zip4j;
2+
3+
import net.lingala.zip4j.ZipFile;
4+
import net.lingala.zip4j.exception.ZipException;
5+
import net.lingala.zip4j.model.ZipParameters;
6+
import net.lingala.zip4j.model.enums.CompressionLevel;
7+
import net.lingala.zip4j.model.enums.EncryptionMethod;
8+
9+
import java.io.File;
10+
11+
public class ZipSingleFile {
12+
13+
public static void main(String[] args) throws ZipException {
14+
ZipParameters zipParameters = new ZipParameters();
15+
zipParameters.setEncryptFiles(true);
16+
zipParameters.setCompressionLevel(CompressionLevel.HIGHER);
17+
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
18+
ZipFile zipFile = new ZipFile("compressed.zip", "password".toCharArray());
19+
zipFile.addFile(new File("aFile.txt"));
20+
}
21+
}

0 commit comments

Comments
 (0)