Zig
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
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", .{});
}