Zig
Zig
Zip -- Exclude Files Based on Wildcard Matching
See more Zip Examples
Demonstrates how to use the SetExclusions method to exclude matching files from being added to a .zip.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
const zip = try chilkat.Zip.init();
defer zip.deinit();
try zip.newZip("qa_output/x.zip");
// Let's add files from the directory tree rooted at C:\AAWorkarea\ChilkatSampleProjects
// However.. we want to exclude all files ending in ".cache" or ".pdb" regardless of the sub-directory.
// Also exclude all files under any "obj" directory,
// and we also want to exclude any .exe found under a "win10-x64" directory.
const sa_excludes = try chilkat.StringArray.init();
defer sa_excludes.deinit();
sa_excludes.append("*.cache") catch {};
sa_excludes.append("*.pdb") catch {};
sa_excludes.append("*/obj/*") catch {};
sa_excludes.append("*/win10-x64/*.exe") catch {};
zip.setExclusions(sa_excludes);
// Append promises of paths and files to be zipped.
const recurse = true;
zip.appendFiles("c:/AAWorkArea/ChilkatSampleProjects/*", recurse) catch {
std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
return;
};
// Create the zip from the file and directory promises added previously.
zip.writeZipAndClose() catch {
std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
return;
};
std.debug.print("Success.\n", .{});
}