2
\defgroup ZIPIOS Zipios++
4
\brief C++ library for reading and writing Zip file
6
\section intro Introduction
8
Zipios++ is a java.util.zip-like C++ library for reading and
9
writing Zip files. Access to individual entries is provided through
10
standard C++ iostreams. A simple read-only virtual file system that
11
mounts regular directories and zip files is also provided.
13
The source code is released under the <A
14
HREF="http://www.gnu.org/copyleft/lesser.html">GNU Lesser General Public
17
\section status Status
19
Spanned archives are not supported, and support is not planned.
22
The library has been tested and appears to be working with
24
<LI><A HREF="http://www.freebsd.org/ports/archivers.html#zipios++-0.1.5">FreeBSD stable and current / gcc 2.95.3</A></LI>
25
<LI>Red Hat Linux release 7.0 / gcc 2.96</LI>
26
<LI>Red Hat Linux release 6.2 (Zoot) / egcs-2.91.66</LI>
27
<LI>Linux Mandrake release 7.0 (Air) / gcc 2.95.2</LI>
28
<LI>SGI IRIX64 6.5 / gcc 2.95.2</LI>
29
<LI>SGI IRIX64 6.5 / MIPSpro Compilers: Version 7.30</LI>
32
If you are aware of any other platforms that Zipios++ works on,
33
please let me know (thomass@deltadata.dk).
35
\subsection zipfiles Zip file access
36
The two most important classes are \ref zipfile_anchor "ZipFile" and
37
\ref ZipInputStream_anchor "ZipInputStream". ZipInputStream is an istream
38
for reading zipfiles. It can be instantiated directly, without the
39
use of ZipFile. A new ZipInputStream reads from the first entry, and
40
the user can skip to the next entry by calling
41
\ref ZipInputStream_getnextentry_anchor "ZipInputStream::getNextEntry()".
43
ZipFile scans the central directory of a zipfile and provides an
44
interface to access that directory. The user may search for entries
45
with a particular filename using \ref fcoll_getentry_anchor "ZipFile::getEntry()",
46
or simply get the complete list of entries
47
with \ref fcoll_entries_anchor "ZipFile::entries()". To get an
48
istream (ZipInputStream) to a particular entry simply use
49
\ref fcoll_getinputstream "ZipFile::getInputStream()".
51
"example_zip.cpp" demonstrates the central elements of Zipios++.
53
A Zip file appended to another file, e.g. a binary program, with the
54
program "appendzip", can be read with
55
\ref zipfile_openembeddedzipfile "ZipFile::openEmbeddedZipFile()".
57
\subsection filecollections FileCollections
59
A ZipFile is actually just a special kind of
60
\ref fcoll_anchor "FileCollection" that
61
obtains its entries from a .zip Zip archive. Zipios++ also implements
62
a \ref dircol_anchor "DirectoryCollection" that obtains its entries
63
from a specified directory, and a \ref collcoll_anchor "CollectionCollection"
64
that obtains its entries from
65
other collections. Using a single CollectionCollection any number of
66
other FileCollections can be placed under its control and accessed
67
through the same single interface that is used to access a ZipFile or
68
a DirectoryCollection. A singleton (a unique global instance)
69
CollectionCollection can be obtained through
71
\ref collcoll_inst_anchor "CollectionCollection::inst()" ;
73
To save typing CollectionCollection has been typedef'ed to CColl. In
74
the initialization part of an application FileCollections can be
75
created, and placed under CColll::inst()'s control using
77
\ref collcoll_addcoll_anchor "CColl::inst().addCollection()"
79
and later an istream can be obtained using
81
\ref fcoll_getinputstream "CColl::inst().getInputStream()".
83
\section download Download
84
Go to Zipios++ project page on SourceForge for tar balls and ChangeLog.
85
<A HREF="http://sourceforge.net/project/?group_id=5418" >
86
http://sourceforge.net/project/?group_id=5418</A>
89
<A HREF="ftp://ftp.freesoftware.com/pub/infozip/zlib/zlib.html">zlib</A>.
90
The compression library that Zipios++ uses to perform the actual
93
<A HREF="http://java.sun.com/products/jdk/1.3/docs/api/index.html">
94
Java 2 Platform, Standard Edition, v 1.3 API Specification
95
</A>. Zipios++ is heavily inspired by the java.util.zip package.
98
HREF="http://www.geocities.com/SiliconValley/Lakes/2160/fformats/files/zip.txt">
100
</A>. A description of the zip file format.
103
Submit bug reports and patches to thomass@deltadata.dk
108
Project hosted by <A HREF="http://sourceforge.net">