C
C
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 C Downloads
#include <C_CkZip.h>
#include <C_CkStringArray.h>
void ChilkatSample(void)
{
BOOL success;
HCkZip zip;
HCkStringArray saExcludes;
BOOL recurse;
success = FALSE;
zip = CkZip_Create();
success = CkZip_NewZip(zip,"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.
saExcludes = CkStringArray_Create();
CkStringArray_Append(saExcludes,"*.cache");
CkStringArray_Append(saExcludes,"*.pdb");
CkStringArray_Append(saExcludes,"*/obj/*");
CkStringArray_Append(saExcludes,"*/win10-x64/*.exe");
CkZip_SetExclusions(zip,saExcludes);
// Append promises of paths and files to be zipped.
recurse = TRUE;
success = CkZip_AppendFiles(zip,"c:/AAWorkArea/ChilkatSampleProjects/*",recurse);
if (success == FALSE) {
printf("%s\n",CkZip_lastErrorText(zip));
CkZip_Dispose(zip);
CkStringArray_Dispose(saExcludes);
return;
}
// Create the zip from the file and directory promises added previously.
success = CkZip_WriteZipAndClose(zip);
if (success == FALSE) {
printf("%s\n",CkZip_lastErrorText(zip));
CkZip_Dispose(zip);
CkStringArray_Dispose(saExcludes);
return;
}
printf("Success.\n");
CkZip_Dispose(zip);
CkStringArray_Dispose(saExcludes);
}