Sample code for 30+ languages & platforms
Zig

Add Binary Data to a ZIP Using AddBd

See more Zip Examples

This example demonstrates how to use the AddBd method to add binary data from a BinData object as a file entry within a ZIP archive.

The data is created entirely in memory, added to the ZIP as data/binary.dat, and then written to disk.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    // Create a new ZIP archive.
    const zip = try chilkat.Zip.init();
    defer zip.deinit();

    zip.newZip("inMemoryData.zip") catch {
        std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
        return;
    };

    // Create a BinData object containing binary content.
    const bd = try chilkat.BinData.init();
    defer bd.deinit();

    // Append some bytes as hexadecimal.
    // The decoded bytes will become the contents of the ZIP entry.
    bd.appendEncoded("000102030405060708090A0B0C0D0E0F", "hex") catch {
        std.debug.print("{s}\n", .{try bd.getLastErrorText(alloc)});
        return;
    };

    // Add the BinData contents as a file entry within the ZIP.
    // The file will be stored as "data/binary.dat" inside the ZIP archive.
    zip.addBd("data/binary.dat", bd) catch {
        std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
        return;
    };

    // Write the ZIP archive to disk and close it.
    zip.writeZipAndClose() catch {
        std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
        return;
    };

    std.debug.print("ZIP archive created successfully.\n", .{});
}