Read/write data in the zip archive format. Makes use of the etc.c.zlib compression library.
// Read existing zip file. import std.digest.crc, std.file, std.stdio, std.zip; void main(string[] args) { // read a zip file into memory auto zip = new ZipArchive(read(args[1])); writeln("Archive: ", args[1]); writefln("%-10s %-8s Name", "Length", "CRC-32"); // iterate over all zip members foreach (name, am; zip.directory) { // print some data about each member writefln("%10s %08x %s", am.expandedSize, am.crc32, name); assert(am.expandedData.length == 0); // decompress the archive member zip.expand(am); assert(am.expandedData.length == am.expandedSize); } } // Create and write new zip file. import std.file : write; import std.string : representation; void main() { char[] data = "Test data.\n".dup; // Create an ArchiveMember for the test file. ArchiveMember am = new ArchiveMember(); am.name = "test.txt"; am.expandedData(data.representation); // Create an archive and add the member. ZipArchive zip = new ZipArchive(); zip.addMember(am); // Build the archive void[] compressed_data = zip.build(); // Write to a file write("test.zip", compressed_data); }
Thrown on error.
Compression method used by ArchiveMember
No compression, just archiving
Deflate algorithm. Use zlib library to compress
A member of the ZipArchive.
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.
Read/Write: extra data for this member.
Read/Write: comment associated with this member.
Read/Write: normally set to 0
Read/Write
Read Only
Read Only: cyclic redundancy check (CRC) value
Read Only: size of data of member in compressed form.
Read Only: size of data of member in expanded form.
Read Only: should be 0.
Read Only: data of member in compressed form.
Read data of member in uncompressed form.
Write data of member in uncompressed form.
Set the OS specific file attributes, as obtained by std.file.getAttributes
or std.file.DirEntry.attributes
, for this archive member.
Get the OS specific file attributes for the archive member.
Set the last modification time for this member.
Get the last modification time for this member.
Read compression method used for this member
Write compression method used for this member
The index of this archive member within the archive.
Object representing the entire archive. ZipArchives are collections of ArchiveMembers.
Read/Write: the archive comment. Must be less than 65536 bytes in length.
Read Only: array representing the entire contents of the archive.
Read Only: 0 since multi-disk zip archives are not supported.
Read Only: 0 since multi-disk zip archives are not supported
Read Only: number of ArchiveMembers in the directory.
True when the archive is in Zip64 format.
Set this to true to force building a Zip64 archive.
Read Only: array indexed by the name of each member of the archive. 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); }
Constructor to use when creating a new archive.
Add de to the archive. The file is compressed on the fly.
Delete de from the archive.
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[].
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.
void[] buffer
| the entire contents of the archive. |
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[].
© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/std_zip.html