Sample code for 30+ languages & platforms
Delphi DLL Requires Chilkat v11.0.0+

Create a Zip Entirely in Memory

See more Zip Examples

Demonstrates how to create a .zip from in-memory byte data and strings, and to write the .zip to an in-memory image.

Chilkat Delphi DLL Downloads

Delphi DLL
var
success: Boolean;
crypt: HCkCrypt2;
zip: HCkZip;
bd: HCkBinData;
zipFileInMemory: HCkByteData;
fac: HCkFileAccess;

begin
success := False;

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

crypt := CkCrypt2_Create();
zip := CkZip_Create();

success := CkZip_NewZip(zip,'test.zip');
if (success = False) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
    Exit;
  end;

//  Add the bytes 0x00 0x01 0x02 0x03 ... 0x0F as a file in the .zip
bd := CkBinData_Create();
CkBinData_AppendEncoded(bd,'000102030405060708090A0B0C0D0E0F','hex');
CkZip_AddBd(zip,'binaryData.dat',bd);

//  Add the string "Hello World!" to the .zip
CkZip_AddString(zip,'helloWorld.txt','Hello World!','utf-8');

zipFileInMemory := CkByteData_Create();
success := CkZip_WriteToMemory(zip,zipFileInMemory);

//  We could save these files to a file, and it is a valid .zip
fac := CkFileAccess_Create();
success := CkFileAccess_WriteEntireFile(fac,'test.zip',zipFileInMemory);
if (success = False) then
  begin
    Memo1.Lines.Add(CkFileAccess__lastErrorText(fac));
    Exit;
  end;

Memo1.Lines.Add('Zip Created!');

CkCrypt2_Dispose(crypt);
CkZip_Dispose(zip);
CkBinData_Dispose(bd);
CkByteData_Dispose(zipFileInMemory);
CkFileAccess_Dispose(fac);