Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
std.zip
Read/write data in the zip archive format. Makes use of the etc.c.zlib compression library. BUGS:- Multi-disk zips not supported.
- Only Zip version 20 formats are supported.
- Only supports compression modes 0 (no compression) and 8 (deflate).
- Does not support encryption.
- Bugzilla 592
- Bugzilla 1832
- Bugzilla 2137
- Bugzilla 2138
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
- ushort compressionMethod;
- 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
- uint compressedSize;
- 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.
- ushort internalAttributes;
- Read/Write
- uint externalAttributes;
- 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[].