The D Programming Language

Read/write data in the  zip archive format. Makes use of the etc.c.zlib compression library.

Known Bugs
License
Boost License 1.0.
Authors
Walter Bright
Source:
std/zip.d

class  ZipException: object.Exception;

Thrown on error.


class  ArchiveMember;

A member of the ZipArchive.


ushort  madeVersion;

Read Only


ushort  extractVersion;

Read Only


ushort  flags;

Read/Write: normally set to 0


Read/Write: 0 for compression, 8 for deflate


std.datetime.DosFileTime  time;

Read/Write: Last modified  time of the member. It's in the DOS date/ time format.


uint  crc32;

Read Only: cyclic redundancy check (CRC) value


Read Only: size of data of member in compressed form.


uint  expandedSize;

Read Only: size of data of member in expanded form.


ushort  diskNumber;

Read Only: should be 0.


Read/Write


Read/Write


string  name;

Read/Write: Usually the file  name of the archive member; it is used to index the archive directory for the member. Each member must have a unique  name[]. Do not change without removing member from the directory first.


ubyte[]  extra;

Read/Write:  extra data for this member.


string  comment;

Read/Write:  comment associated with this member.


ubyte[]  compressedData;

Read Only: data of member in compressed form.


ubyte[]  expandedData;

Read/Write: data of member in uncompressed form.


class  ZipArchive;

Object representing the entire archive. ZipArchives are collections of ArchiveMembers.


ubyte[]  data;

Read Only: array representing the entire contents of the archive.


uint  diskNumber;

Read Only: 0 since multi-disk zip archives are not supported.


uint  diskStartDir;

Read Only: 0 since multi-disk zip archives are not supported.


uint  numEntries;

Read Only: number of ArchiveMembers in the directory.


uint  totalEntries;

Read Only: same as  totalEntries.


string  comment;

Read/Write: the archive  comment. Must be less than 65536 bytes in length.


ArchiveMember[string]  directory;

Read Only: array indexed by the name of each member of the archive.

Example:
All the members of the archive can be accessed with a foreach loop:
ZipArchive archive = new ZipArchive(data);
foreach (ArchiveMember am; archive.directory)
{
    writefln("member name is '%s'", am.name);
}

this();

Constructor to use when creating a new archive.


void  addMember(ArchiveMember de);

Add de to the archive.


void  deleteMember(ArchiveMember de);

Delete de from the archive.


void[]  build();

Construct an archive out of the current members of the archive.

Fills in the properties data[], diskNumber, diskStartDir, numEntries, totalEntries, and directory[]. For each ArchiveMember, fills in properties crc32, compressedSize, compressedData[].

Returns
array representing the entire archive.

this(void[] buffer);

Constructor to use when reading an existing archive.

Fills in the properties data[], diskNumber, diskStartDir, numEntries, totalEntries, comment[], and directory[]. For each ArchiveMember, fills in properties madeVersion, extractVersion, flags, compressionMethod, time, crc32, compressedSize, expandedSize, compressedData[], diskNumber, internalAttributes, externalAttributes, name[], extra[], comment[]. Use expand() to get the expanded data for each ArchiveMember.

Parameters
void[] buffer the entire contents of the archive.

ubyte[]  expand(ArchiveMember de);

Decompress the contents of archive member de and return the expanded data.

Fills in properties extractVersion, flags, compressionMethod, time, crc32, compressedSize, expandedSize, expandedData[], name[], extra[].