zip

Here is a simple example of how to use Compress4J to create and extract zip files:

Example Usage

Zip Creation
try (ZipArchiveCreator zipCreator = ZipArchiveCreator.builder(Path.of("example.zip"))
        .compressionLevel(9)
        .compressionMethod(DEFLATED)
        .setEncoding(StandardCharsets.UTF_8.name())
        .setUseZip64(Zip64Mode.AsNeeded)
        .setComment("This is a zip comment")
        .setCreateUnicodeExtraFields(ZipArchiveOutputStream.UnicodeExtraFieldPolicy.ALWAYS)
        .build()) {
    zipCreator.addFile(Path.of("path/to/file.txt"));
    zipCreator.addDirectoryRecursively(Path.of("sourceDir"));
}
Zip Extraction
try (ZipArchiveExtractor zipExtractor = ZipArchiveExtractor.builder(Path.of("example.zip"))
        .overwrite(true)
        .stripComponents(1)
        .setIgnoreLocalFileHeader(true)
        .setUseUnicodeExtraFields(true)
        .filter(entry -> entry.name().endsWith(".txt"))
        .errorHandler((entry, exception) -> SKIP)
        .escapingSymlinkPolicy(ArchiveExtractor.EscapingSymlinkPolicy.DISALLOW)
        .build()) {
    zipExtractor.extract(Path.of("outputDir"));
}