www.digitalmars.com Home | Search | D | Comments
Last update Sat Mar 18 23:51:29 2006
D
Language
Phobos
Comparisons


object

std
 std.base64
 std.boxer
 std.compiler
 std.conv
 std.cover
 std.ctype
 std.date
 std.demangle
 std.file
 std.format
 std.gc
 std.intrinsic
 std.math
 std.md5
 std.mmfile
 std.openrj
 std.outbuffer
 std.path
 std.process
 std.random
 std.recls
 std.regexp
 std.socket
 std.socketstream
 std.stdint
 std.stdio
 std.cstream
 std.stream
 std.string
 std.system
 std.thread
 std.uri
 std.utf
 std.zip
 std.zlib
 std.c.fenv
 std.c.math
 std.c.process
 std.c.stdarg
 std.c.stddef
 std.c.stdio
 std.c.stdlib
 std.c.string
 std.c.time
 std.c.wcharh
 std.windows.charset

std.windows

std.linux

std.c.windows

std.c.linux

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.


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

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

char[] 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.

char[] 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.

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

ArchiveMember[char[]] 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.

Params:
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[].