- Comments
- D
- Search
- Home

Last update Wed Sep 5 11:42:46 2007

# 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
  const(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.
  const(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.
  const(char)[] comment;
    Read/Write: the archive comment. Must be less than 65536 bytes in length.
  ArchiveMember[const(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[].

Copyright © 1999-2007 by Digital Mars, All Rights Reserved | Page generated by Ddoc.