1999-07-10 17:17:24 -04:00
|
|
|
%
|
2004-11-10 18:58:38 -05:00
|
|
|
% automatically generated by HelpGen $Revision$ from
|
|
|
|
% wx/zipstrm.h at 16/Sep/04 12:19:29
|
1999-07-10 17:17:24 -04:00
|
|
|
%
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\section{\class{wxZipClassFactory}}\label{wxzipclassfactory}
|
1999-07-10 17:17:24 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
Class factory for the zip archive format. See the base class
|
|
|
|
for details.
|
1999-07-10 17:17:24 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\wxheading{Derived from}
|
2000-07-15 15:51:35 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\helpref{wxArchiveClassFactory}{wxarchiveclassfactory}
|
2000-07-15 15:51:35 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/zipstrm.h>
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Archive formats such as zip}{wxarc}\\
|
2006-11-12 10:42:53 -05:00
|
|
|
\helpref{Generic archive programming}{wxarcgeneric}\\
|
2004-11-10 18:58:38 -05:00
|
|
|
\helpref{wxZipEntry}{wxzipentry}\\
|
|
|
|
\helpref{wxZipInputStream}{wxzipinputstream}\\
|
|
|
|
\helpref{wxZipOutputStream}{wxzipoutputstream}
|
|
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
% automatically generated by HelpGen $Revision$ from
|
|
|
|
% wx/zipstrm.h at 16/Sep/04 12:19:29
|
|
|
|
%
|
|
|
|
|
|
|
|
\section{\class{wxZipEntry}}\label{wxzipentry}
|
|
|
|
|
|
|
|
Holds the meta-data for an entry in a zip.
|
2000-07-15 15:51:35 -04:00
|
|
|
|
1999-07-10 17:17:24 -04:00
|
|
|
\wxheading{Derived from}
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\helpref{wxArchiveEntry}{wxarchiveentry}
|
2000-02-27 16:06:58 -05:00
|
|
|
|
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/zipstrm.h>
|
1999-07-10 17:17:24 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\wxheading{Data structures}
|
|
|
|
|
|
|
|
Constants for \helpref{Get/SetMethod}{wxzipentrymethod}:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
// Compression Method, only 0 (store) and 8 (deflate) are supported here
|
|
|
|
//
|
|
|
|
enum wxZipMethod
|
|
|
|
{
|
|
|
|
wxZIP_METHOD_STORE,
|
|
|
|
wxZIP_METHOD_SHRINK,
|
|
|
|
wxZIP_METHOD_REDUCE1,
|
|
|
|
wxZIP_METHOD_REDUCE2,
|
|
|
|
wxZIP_METHOD_REDUCE3,
|
|
|
|
wxZIP_METHOD_REDUCE4,
|
|
|
|
wxZIP_METHOD_IMPLODE,
|
|
|
|
wxZIP_METHOD_TOKENIZE,
|
|
|
|
wxZIP_METHOD_DEFLATE,
|
|
|
|
wxZIP_METHOD_DEFLATE64,
|
|
|
|
wxZIP_METHOD_BZIP2 = 12,
|
|
|
|
wxZIP_METHOD_DEFAULT = 0xffff
|
|
|
|
};
|
|
|
|
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Constants for \helpref{Get/SetSystemMadeBy}{wxzipentrysystemmadeby}:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
// Originating File-System.
|
|
|
|
//
|
|
|
|
// These are Pkware's values. Note that Info-zip disagree on some of them,
|
|
|
|
// most notably NTFS.
|
|
|
|
//
|
|
|
|
enum wxZipSystem
|
|
|
|
{
|
|
|
|
wxZIP_SYSTEM_MSDOS,
|
|
|
|
wxZIP_SYSTEM_AMIGA,
|
|
|
|
wxZIP_SYSTEM_OPENVMS,
|
|
|
|
wxZIP_SYSTEM_UNIX,
|
|
|
|
wxZIP_SYSTEM_VM_CMS,
|
|
|
|
wxZIP_SYSTEM_ATARI_ST,
|
|
|
|
wxZIP_SYSTEM_OS2_HPFS,
|
|
|
|
wxZIP_SYSTEM_MACINTOSH,
|
|
|
|
wxZIP_SYSTEM_Z_SYSTEM,
|
|
|
|
wxZIP_SYSTEM_CPM,
|
|
|
|
wxZIP_SYSTEM_WINDOWS_NTFS,
|
|
|
|
wxZIP_SYSTEM_MVS,
|
|
|
|
wxZIP_SYSTEM_VSE,
|
|
|
|
wxZIP_SYSTEM_ACORN_RISC,
|
|
|
|
wxZIP_SYSTEM_VFAT,
|
|
|
|
wxZIP_SYSTEM_ALTERNATE_MVS,
|
|
|
|
wxZIP_SYSTEM_BEOS,
|
|
|
|
wxZIP_SYSTEM_TANDEM,
|
|
|
|
wxZIP_SYSTEM_OS_400
|
|
|
|
};
|
|
|
|
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Constants for \helpref{Get/SetExternalAttributes}{wxzipentryexternalattributes}:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
// Dos/Win file attributes
|
|
|
|
//
|
|
|
|
enum wxZipAttributes
|
|
|
|
{
|
|
|
|
wxZIP_A_RDONLY = 0x01,
|
|
|
|
wxZIP_A_HIDDEN = 0x02,
|
|
|
|
wxZIP_A_SYSTEM = 0x04,
|
|
|
|
wxZIP_A_SUBDIR = 0x10,
|
|
|
|
wxZIP_A_ARCH = 0x20,
|
|
|
|
|
|
|
|
wxZIP_A_MASK = 0x37
|
|
|
|
};
|
|
|
|
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Constants for \helpref{Get/SetFlags}{wxzipentrygetflags}:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
// Values for the flags field in the zip headers
|
|
|
|
//
|
|
|
|
enum wxZipFlags
|
|
|
|
{
|
|
|
|
wxZIP_ENCRYPTED = 0x0001,
|
|
|
|
wxZIP_DEFLATE_NORMAL = 0x0000, // normal compression
|
|
|
|
wxZIP_DEFLATE_EXTRA = 0x0002, // extra compression
|
|
|
|
wxZIP_DEFLATE_FAST = 0x0004, // fast compression
|
|
|
|
wxZIP_DEFLATE_SUPERFAST = 0x0006, // superfast compression
|
|
|
|
wxZIP_DEFLATE_MASK = 0x0006,
|
|
|
|
wxZIP_SUMS_FOLLOW = 0x0008, // crc and sizes come after the data
|
|
|
|
wxZIP_ENHANCED = 0x0010,
|
|
|
|
wxZIP_PATCH = 0x0020,
|
|
|
|
wxZIP_STRONG_ENC = 0x0040,
|
|
|
|
wxZIP_UNUSED = 0x0F80,
|
|
|
|
wxZIP_RESERVED = 0xF000
|
|
|
|
};
|
|
|
|
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Archive formats such as zip}{wxarc}\\
|
|
|
|
\helpref{wxZipInputStream}{wxzipinputstream}\\
|
|
|
|
\helpref{wxZipOutputStream}{wxzipoutputstream}\\
|
|
|
|
\helpref{wxZipNotifier}{wxzipnotifier}
|
|
|
|
|
|
|
|
\wxheading{Field availability}
|
|
|
|
|
|
|
|
When reading a zip from a stream that is seekable,
|
|
|
|
\helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns
|
|
|
|
a fully populated wxZipEntry object except for
|
|
|
|
\helpref{wxZipEntry::GetLocalExtra()}{wxzipentrylocalextra}. GetLocalExtra()
|
|
|
|
becomes available when the entry is opened, either by calling
|
|
|
|
\helpref{wxZipInputStream::OpenEntry}{wxzipinputstreamopenentry} or by
|
|
|
|
making an attempt to read the entry's data.
|
|
|
|
|
|
|
|
For zips on \helpref{non-seekable}{wxarcnoseek} streams, the following
|
|
|
|
fields are always available when GetNextEntry() returns:
|
|
|
|
|
|
|
|
\helpref{GetDateTime}{wxarchiveentrydatetime}\\
|
|
|
|
\helpref{GetInternalFormat}{wxarchiveentrygetinternalformat}\\
|
|
|
|
\helpref{GetInternalName}{wxzipentrygetinternalname}\\
|
|
|
|
\helpref{GetFlags}{wxzipentrygetflags}\\
|
|
|
|
\helpref{GetLocalExtra}{wxzipentrylocalextra}\\
|
|
|
|
\helpref{GetMethod}{wxzipentrymethod}\\
|
|
|
|
\helpref{GetName}{wxarchiveentryname}\\
|
|
|
|
\helpref{GetOffset}{wxarchiveentrygetoffset}\\
|
|
|
|
\helpref{IsDir}{wxarchiveentryisdir}
|
|
|
|
|
|
|
|
The following fields are also usually available when GetNextEntry()
|
|
|
|
returns, however, if the zip was also written to a non-seekable stream
|
|
|
|
the zipper is permitted to store them after the entry's data. In that
|
|
|
|
case they become available when the entry's data has been read to Eof(),
|
|
|
|
or \helpref{CloseEntry()}{wxarchiveinputstreamcloseentry} has been called.
|
|
|
|
{\tt (GetFlags() \& wxZIP\_SUMS\_FOLLOW) != 0} indicates that one or
|
|
|
|
more of these come after the data:
|
|
|
|
|
|
|
|
\helpref{GetCompressedSize}{wxzipentrygetcompressedsize}\\
|
|
|
|
\helpref{GetCrc}{wxzipentrygetcrc}\\
|
|
|
|
\helpref{GetSize}{wxarchiveentrysize}
|
|
|
|
|
|
|
|
The following are stored at the end of the zip, and become available
|
|
|
|
when the end of the zip has been reached, i.e. after GetNextEntry()
|
|
|
|
returns NULL and Eof() is true:
|
|
|
|
|
|
|
|
\helpref{GetComment}{wxzipentrycomment}\\
|
|
|
|
\helpref{GetExternalAttributes}{wxzipentryexternalattributes}\\
|
|
|
|
\helpref{GetExtra}{wxzipentryextra}\\
|
|
|
|
\helpref{GetMode}{wxzipentrymode}\\
|
|
|
|
\helpref{GetSystemMadeBy}{wxzipentrysystemmadeby}\\
|
|
|
|
\helpref{IsReadOnly}{wxarchiveentryisreadonly}\\
|
|
|
|
\helpref{IsMadeByUnix}{wxzipentryismadebyunix}\\
|
|
|
|
\helpref{IsText}{wxzipentryistext}
|
|
|
|
|
|
|
|
|
1999-07-10 17:17:24 -04:00
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
|
|
|
|
\membersection{wxZipEntry::wxZipEntry}\label{wxzipentrywxzipentry}
|
|
|
|
|
|
|
|
\func{}{wxZipEntry}{\param{const wxString\& }{name = wxEmptyString}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}}
|
|
|
|
|
|
|
|
Constructor.
|
|
|
|
|
|
|
|
\func{}{wxZipEntry}{\param{const wxZipEntry\& }{entry}}
|
|
|
|
|
|
|
|
Copy constructor.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Clone}\label{wxzipentryclone}
|
|
|
|
|
|
|
|
\constfunc{wxZipEntry*}{Clone}{\void}
|
|
|
|
|
|
|
|
Make a copy of this entry.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Get/SetComment}\label{wxzipentrycomment}
|
|
|
|
|
|
|
|
\constfunc{wxString}{GetComment}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetComment}{\param{const wxString\& }{comment}}
|
|
|
|
|
|
|
|
A short comment for this entry.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::GetCompressedSize}\label{wxzipentrygetcompressedsize}
|
|
|
|
|
|
|
|
\constfunc{off\_t}{GetCompressedSize}{\void}
|
|
|
|
|
|
|
|
The compressed size of this entry in bytes.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::GetCrc}\label{wxzipentrygetcrc}
|
|
|
|
|
|
|
|
\constfunc{wxUint32}{GetCrc}{\void}
|
|
|
|
|
|
|
|
CRC32 for this entry's data.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Get/SetExternalAttributes}\label{wxzipentryexternalattributes}
|
|
|
|
|
|
|
|
\constfunc{wxUint32}{GetExternalAttributes}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetExternalAttributes}{\param{wxUint32 }{attr}}
|
|
|
|
|
|
|
|
The low 8 bits are always the DOS/Windows file attributes for this entry.
|
|
|
|
The values of these attributes are given in the
|
|
|
|
enumeration {\tt wxZipAttributes}.
|
|
|
|
|
|
|
|
The remaining bits can store platform specific permission bits or
|
|
|
|
attributes, and their meaning depends on the value
|
|
|
|
of \helpref{SetSystemMadeBy()}{wxzipentrysystemmadeby}.
|
|
|
|
If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then the
|
|
|
|
high 16 bits are unix mode bits.
|
|
|
|
|
|
|
|
The following other accessors access these bits:
|
|
|
|
|
|
|
|
\helpref{IsReadOnly/SetIsReadOnly}{wxarchiveentryisreadonly}\\
|
|
|
|
\helpref{IsDir/SetIsDir}{wxarchiveentryisdir}\\
|
|
|
|
\helpref{Get/SetMode}{wxzipentrymode}
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Get/SetExtra}\label{wxzipentryextra}
|
|
|
|
|
|
|
|
\constfunc{const char*}{GetExtra}{\void}
|
|
|
|
|
|
|
|
\constfunc{size\_t}{GetExtraLen}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetExtra}{\param{const char* }{extra}, \param{size\_t }{len}}
|
|
|
|
|
|
|
|
The extra field from the entry's central directory record.
|
|
|
|
|
|
|
|
The extra field is used to store platform or application specific
|
|
|
|
data. See Pkware's document 'appnote.txt' for information on its format.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::GetFlags}\label{wxzipentrygetflags}
|
|
|
|
|
|
|
|
\constfunc{int}{GetFlags}{\void}
|
|
|
|
|
|
|
|
Returns a combination of the bits flags in the enumeration {\tt wxZipFlags}.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::GetInternalName}\label{wxzipentrygetinternalname}
|
|
|
|
|
|
|
|
\constfunc{wxString}{GetInternalName}{\void}
|
|
|
|
|
|
|
|
Returns the entry's filename in the internal format used within the
|
|
|
|
archive. The name can include directory components, i.e. it can be a
|
|
|
|
full path.
|
|
|
|
|
|
|
|
The names of directory entries are returned without any trailing path
|
|
|
|
separator. This gives a canonical name that can be used in comparisons.
|
|
|
|
|
|
|
|
\func{wxString}{GetInternalName}{\param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}, \param{bool* }{pIsDir = NULL}}
|
|
|
|
|
|
|
|
A static member that translates a filename into the internal format used
|
|
|
|
within the archive. If the third parameter is provided, the bool pointed
|
|
|
|
to is set to indicate whether the name looks like a directory name
|
|
|
|
(i.e. has a trailing path separator).
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Looking up an archive entry by name}{wxarcbyname}
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Get/SetLocalExtra}\label{wxzipentrylocalextra}
|
|
|
|
|
|
|
|
\constfunc{const char*}{GetLocalExtra}{\void}
|
|
|
|
|
|
|
|
\constfunc{size\_t}{GetLocalExtraLen}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetLocalExtra}{\param{const char* }{extra}, \param{size\_t }{len}}
|
|
|
|
|
|
|
|
The extra field from the entry's local record.
|
|
|
|
|
|
|
|
The extra field is used to store platform or application specific
|
|
|
|
data. See Pkware's document 'appnote.txt' for information on its format.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Get/SetMethod}\label{wxzipentrymethod}
|
|
|
|
|
|
|
|
\constfunc{int}{GetMethod}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetMethod}{\param{int }{method}}
|
|
|
|
|
|
|
|
The compression method. The enumeration {\tt wxZipMethod} lists the
|
|
|
|
possible values.
|
|
|
|
|
|
|
|
The default constructor sets this to wxZIP\_METHOD\_DEFAULT,
|
|
|
|
which allows \helpref{wxZipOutputStream}{wxzipoutputstream} to
|
|
|
|
choose the method when writing the entry.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Get/SetMode}\label{wxzipentrymode}
|
|
|
|
|
|
|
|
\constfunc{int}{GetMode}{\void}
|
|
|
|
|
|
|
|
If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then
|
|
|
|
returns the unix permission bits stored in
|
|
|
|
\helpref{GetExternalAttributes()}{wxzipentryexternalattributes}.
|
|
|
|
Otherwise synthesises them from the DOS attributes.
|
|
|
|
|
|
|
|
\func{void}{SetMode}{\param{int }{mode}}
|
|
|
|
|
|
|
|
Sets the DOS attributes
|
|
|
|
in \helpref{GetExternalAttributes()}{wxzipentryexternalattributes}
|
|
|
|
to be consistent with the {\tt mode} given.
|
|
|
|
|
|
|
|
If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then also
|
|
|
|
stores {\tt mode} in GetExternalAttributes().
|
|
|
|
|
|
|
|
Note that the default constructor
|
|
|
|
sets \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby} to
|
|
|
|
wxZIP\_SYSTEM\_MSDOS by default. So to be able to store unix
|
|
|
|
permissions when creating zips, call SetSystemMadeBy(wxZIP\_SYSTEM\_UNIX).
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::SetNotifier}\label{wxzipentrynotifier}
|
|
|
|
|
|
|
|
\func{void}{SetNotifier}{\param{wxZipNotifier\& }{notifier}}
|
|
|
|
|
|
|
|
\func{void}{UnsetNotifier}{\void}
|
|
|
|
|
|
|
|
Sets the \helpref{notifier}{wxzipnotifier} for this entry.
|
|
|
|
Whenever the \helpref{wxZipInputStream}{wxzipinputstream} updates
|
|
|
|
this entry, it will then invoke the associated
|
|
|
|
notifier's \helpref{OnEntryUpdated}{wxzipnotifieronentryupdated}
|
|
|
|
method.
|
|
|
|
|
|
|
|
Setting a notifier is not usually necessary. It is used to handle
|
|
|
|
certain cases when modifying an zip in a pipeline (i.e. between
|
|
|
|
non-seekable streams).
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Archives on non-seekable streams}{wxarcnoseek}\\
|
|
|
|
\helpref{wxZipNotifier}{wxzipnotifier}
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::Get/SetSystemMadeBy}\label{wxzipentrysystemmadeby}
|
|
|
|
|
|
|
|
\constfunc{int}{GetSystemMadeBy}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetSystemMadeBy}{\param{int }{system}}
|
|
|
|
|
|
|
|
The originating file-system. The default constructor sets this to
|
|
|
|
wxZIP\_SYSTEM\_MSDOS. Set it to wxZIP\_SYSTEM\_UNIX in order to be
|
|
|
|
able to store unix permissions using \helpref{SetMode()}{wxzipentrymode}.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::IsMadeByUnix}\label{wxzipentryismadebyunix}
|
|
|
|
|
|
|
|
\constfunc{bool}{IsMadeByUnix}{\void}
|
|
|
|
|
|
|
|
Returns true if \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby}
|
|
|
|
is a flavour of unix.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::IsText/SetIsText}\label{wxzipentryistext}
|
|
|
|
|
|
|
|
\constfunc{bool}{IsText}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetIsText}{\param{bool }{isText = true}}
|
|
|
|
|
|
|
|
Indicates that this entry's data is text in an 8-bit encoding.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipEntry::operator=}\label{wxzipentryoperatorassign}
|
|
|
|
|
|
|
|
\func{wxZipEntry\& operator}{operator=}{\param{const wxZipEntry\& }{entry}}
|
|
|
|
|
|
|
|
Assignment operator.
|
|
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
% automatically generated by HelpGen $Revision$ from
|
|
|
|
% wx/zipstrm.h at 16/Sep/04 12:19:29
|
|
|
|
%
|
|
|
|
|
|
|
|
\section{\class{wxZipInputStream}}\label{wxzipinputstream}
|
|
|
|
|
|
|
|
Input stream for reading zip files.
|
|
|
|
|
|
|
|
\helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns an
|
|
|
|
\helpref{wxZipEntry}{wxzipentry} object containing the meta-data
|
|
|
|
for the next entry in the zip (and gives away ownership). Reading from
|
|
|
|
the wxZipInputStream then returns the entry's data. Eof() becomes true
|
|
|
|
after an attempt has been made to read past the end of the entry's data.
|
|
|
|
When there are no more entries, GetNextEntry() returns NULL and sets Eof().
|
|
|
|
|
2005-03-25 17:32:27 -05:00
|
|
|
Note that in general zip entries are not seekable, and
|
|
|
|
wxZipInputStream::SeekI() always returns wxInvalidOffset.
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
\helpref{wxArchiveInputStream}{wxarchiveinputstream}
|
|
|
|
|
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/zipstrm.h>
|
|
|
|
|
|
|
|
\wxheading{Data structures}
|
2004-11-11 14:10:35 -05:00
|
|
|
\begin{verbatim}
|
|
|
|
typedef wxZipEntry entry_type
|
|
|
|
\end{verbatim}
|
2004-11-10 18:58:38 -05:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Archive formats such as zip}{wxarc}\\
|
|
|
|
\helpref{wxZipEntry}{wxzipentry}\\
|
|
|
|
\helpref{wxZipOutputStream}{wxzipoutputstream}
|
|
|
|
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
|
|
|
|
1999-07-10 17:17:24 -04:00
|
|
|
\membersection{wxZipInputStream::wxZipInputStream}\label{wxzipinputstreamwxzipinputstream}
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\func{}{wxZipInputStream}{\param{wxInputStream\& }{stream}, \param{wxMBConv\& }{conv = wxConvLocal}}
|
|
|
|
|
2006-10-29 07:56:48 -05:00
|
|
|
\func{}{wxZipInputStream}{\param{wxInputStream*}{stream}, \param{wxMBConv\& }{conv = wxConvLocal}}
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
Constructor. In a Unicode build the second parameter {\tt conv} is
|
|
|
|
used to translate the filename and comment fields into Unicode. It has
|
|
|
|
no effect on the stream's data.
|
|
|
|
|
2006-10-29 07:56:48 -05:00
|
|
|
If the parent stream is passed as a pointer then the new filter stream
|
|
|
|
takes ownership of it. If it is passed by reference then it does not.
|
|
|
|
|
1999-07-10 17:17:24 -04:00
|
|
|
\func{}{wxZipInputStream}{\param{const wxString\& }{archive}, \param{const wxString\& }{file}}
|
|
|
|
|
2006-10-29 07:56:48 -05:00
|
|
|
Compatibility constructor (requires WXWIN\_COMPATIBILITY\_2\_6).
|
2004-11-10 18:58:38 -05:00
|
|
|
|
2005-03-25 17:32:27 -05:00
|
|
|
When this constructor is used, an emulation of seeking is
|
|
|
|
switched on for compatibility with previous versions. Note however,
|
|
|
|
that it is deprecated.
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
|
|
|
|
\membersection{wxZipInputStream::CloseEntry}\label{wxzipinputstreamcloseentry}
|
|
|
|
|
|
|
|
\func{bool}{CloseEntry}{\void}
|
|
|
|
|
|
|
|
Closes the current entry. On a non-seekable stream reads to the end of
|
|
|
|
the current entry first.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipInputStream::GetComment}\label{wxzipinputstreamgetcomment}
|
|
|
|
|
|
|
|
\func{wxString}{GetComment}{\void}
|
|
|
|
|
|
|
|
Returns the zip comment.
|
|
|
|
|
2005-04-08 10:34:30 -04:00
|
|
|
This is stored at the end of the zip, therefore when reading a zip
|
2004-11-10 18:58:38 -05:00
|
|
|
from a non-seekable stream, it returns the empty string until the
|
|
|
|
end of the zip has been reached, i.e. when GetNextEntry() returns
|
|
|
|
NULL.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipInputStream::GetNextEntry}\label{wxzipinputstreamgetnextentry}
|
|
|
|
|
|
|
|
\func{wxZipEntry*}{GetNextEntry}{\void}
|
|
|
|
|
|
|
|
Closes the current entry if one is open, then reads the meta-data for
|
|
|
|
the next entry and returns it in a \helpref{wxZipEntry}{wxzipentry}
|
|
|
|
object, giving away ownership. The stream is then open and can be read.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipInputStream::GetTotalEntries}\label{wxzipinputstreamgettotalentries}
|
|
|
|
|
|
|
|
\func{int}{GetTotalEntries}{\void}
|
|
|
|
|
|
|
|
For a zip on a seekable stream returns the total number of entries in
|
|
|
|
the zip. For zips on non-seekable streams returns the number of entries
|
|
|
|
returned so far by \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry}.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipInputStream::OpenEntry}\label{wxzipinputstreamopenentry}
|
|
|
|
|
|
|
|
\func{bool}{OpenEntry}{\param{wxZipEntry\& }{entry}}
|
|
|
|
|
|
|
|
Closes the current entry if one is open, then opens the entry specified
|
|
|
|
by the {\it entry} object.
|
|
|
|
|
|
|
|
{\it entry} should be from the same zip file, and the zip should
|
|
|
|
be on a seekable stream.
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Looking up an archive entry by name}{wxarcbyname}
|
|
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
% automatically generated by HelpGen $Revision$ from
|
|
|
|
% wx/zipstrm.h at 16/Sep/04 12:19:29
|
|
|
|
%
|
|
|
|
|
|
|
|
\section{\class{wxZipNotifier}}\label{wxzipnotifier}
|
|
|
|
|
|
|
|
If you need to know when a \helpref{wxZipInputStream}{wxzipinputstream}
|
|
|
|
updates a \helpref{wxZipEntry}{wxzipentry},
|
|
|
|
you can create a notifier by deriving from this abstract base class,
|
|
|
|
overriding \helpref{OnEntryUpdated()}{wxzipnotifieronentryupdated}.
|
|
|
|
An instance of your notifier class can then be assigned to wxZipEntry
|
|
|
|
objects, using \helpref{wxZipEntry::SetNotifier()}{wxzipentrynotifier}.
|
|
|
|
|
|
|
|
Setting a notifier is not usually necessary. It is used to handle
|
|
|
|
certain cases when modifying an zip in a pipeline (i.e. between
|
|
|
|
non-seekable streams).
|
|
|
|
See '\helpref{Archives on non-seekable streams}{wxarcnoseek}'.
|
|
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
No base class
|
|
|
|
|
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/zipstrm.h>
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Archives on non-seekable streams}{wxarcnoseek}\\
|
|
|
|
\helpref{wxZipEntry}{wxzipentry}\\
|
|
|
|
\helpref{wxZipInputStream}{wxzipinputstream}\\
|
|
|
|
\helpref{wxZipOutputStream}{wxzipoutputstream}
|
|
|
|
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipNotifier::OnEntryUpdated}\label{wxzipnotifieronentryupdated}
|
|
|
|
|
|
|
|
\func{void}{OnEntryUpdated}{\param{wxZipEntry\& }{entry}}
|
|
|
|
|
|
|
|
Override this to receive notifications when
|
|
|
|
an \helpref{wxZipEntry}{wxzipentry} object changes.
|
|
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
% automatically generated by HelpGen $Revision$ from
|
|
|
|
% wx/zipstrm.h at 16/Sep/04 12:19:29
|
|
|
|
%
|
|
|
|
|
|
|
|
\section{\class{wxZipOutputStream}}\label{wxzipoutputstream}
|
|
|
|
|
|
|
|
Output stream for writing zip files.
|
|
|
|
|
|
|
|
\helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} is used to create
|
|
|
|
a new entry in the output zip, then the entry's data is written to the
|
|
|
|
wxZipOutputStream. Another call to PutNextEntry() closes the current
|
|
|
|
entry and begins the next.
|
|
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
\helpref{wxArchiveOutputStream}{wxarchiveoutputstream}
|
|
|
|
|
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/zipstrm.h>
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{Archive formats such as zip}{wxarc}\\
|
|
|
|
\helpref{wxZipEntry}{wxzipentry}\\
|
|
|
|
\helpref{wxZipInputStream}{wxzipinputstream}
|
|
|
|
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::wxZipOutputStream}\label{wxzipoutputstreamwxzipoutputstream}
|
|
|
|
|
|
|
|
\func{}{wxZipOutputStream}{\param{wxOutputStream\& }{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}}
|
|
|
|
|
2006-10-29 07:56:48 -05:00
|
|
|
\func{}{wxZipOutputStream}{\param{wxOutputStream*}{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}}
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
Constructor. {\tt level} is the compression level to use.
|
|
|
|
It can be a value between 0 and 9 or -1 to use the default value
|
|
|
|
which currently is equivalent to 6.
|
|
|
|
|
2006-10-29 07:56:48 -05:00
|
|
|
If the parent stream is passed as a pointer then the new filter stream
|
|
|
|
takes ownership of it. If it is passed by reference then it does not.
|
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
In a Unicode build the third parameter {\tt conv} is used to translate
|
2006-11-12 16:45:06 -05:00
|
|
|
the filename and comment fields to an 8-bit encoding. It has no effect on the
|
2004-11-10 18:58:38 -05:00
|
|
|
stream's data.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::\destruct{wxZipOutputStream}}\label{wxzipoutputstreamdtor}
|
|
|
|
|
|
|
|
\func{}{\destruct{wxZipOutputStream}}{\void}
|
|
|
|
|
|
|
|
The destructor calls \helpref{Close()}{wxzipoutputstreamclose} to finish
|
|
|
|
writing the zip if it has not been called already.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::Close}\label{wxzipoutputstreamclose}
|
|
|
|
|
|
|
|
\func{bool}{Close}{\void}
|
|
|
|
|
2006-11-12 16:45:06 -05:00
|
|
|
Finishes writing the zip, returning true if successful.
|
2004-11-10 18:58:38 -05:00
|
|
|
Called by the destructor if not called explicitly.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::CloseEntry}\label{wxzipoutputstreamcloseentry}
|
|
|
|
|
|
|
|
\func{bool}{CloseEntry}{\void}
|
|
|
|
|
|
|
|
Close the current entry. It is called implicitly whenever another new
|
|
|
|
entry is created with \helpref{CopyEntry()}{wxzipoutputstreamcopyentry}
|
|
|
|
or \helpref{PutNextEntry()}{wxzipoutputstreamputnextentry}, or
|
|
|
|
when the zip is closed.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::CopyArchiveMetaData}\label{wxzipoutputstreamcopyarchivemetadata}
|
|
|
|
|
|
|
|
\func{bool}{CopyArchiveMetaData}{\param{wxZipInputStream\& }{inputStream}}
|
|
|
|
|
|
|
|
Transfers the zip comment from the \helpref{wxZipInputStream}{wxzipinputstream}
|
|
|
|
to this output stream.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::CopyEntry}\label{wxzipoutputstreamcopyentry}
|
|
|
|
|
|
|
|
\func{bool}{CopyEntry}{\param{wxZipEntry* }{entry}, \param{wxZipInputStream\& }{inputStream}}
|
|
|
|
|
|
|
|
Takes ownership of {\tt entry} and uses it to create a new entry
|
|
|
|
in the zip. {\tt entry} is then opened in {\tt inputStream} and its contents
|
|
|
|
copied to this stream.
|
|
|
|
|
|
|
|
CopyEntry() is much more efficient than transferring the data using
|
|
|
|
Read() and Write() since it will copy them without decompressing and
|
|
|
|
recompressing them.
|
|
|
|
|
|
|
|
For zips on seekable streams, {\tt entry} must be from the same zip file
|
|
|
|
as {\tt stream}. For non-seekable streams, {\tt entry} must also be the
|
|
|
|
last thing read from {\tt inputStream}.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::Get/SetLevel}\label{wxzipoutputstreamlevel}
|
|
|
|
|
|
|
|
\constfunc{int}{GetLevel}{\void}
|
|
|
|
|
|
|
|
\func{void}{SetLevel}{\param{int }{level}}
|
|
|
|
|
|
|
|
Set the compression level that will be used the next time an entry is
|
|
|
|
created. It can be a value between 0 and 9 or -1 to use the default value
|
|
|
|
which currently is equivalent to 6.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::PutNextDirEntry}\label{wxzipoutputstreamputnextdirentry}
|
|
|
|
|
|
|
|
\func{bool}{PutNextDirEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}}
|
|
|
|
|
|
|
|
Create a new directory entry
|
|
|
|
(see \helpref{wxArchiveEntry::IsDir()}{wxarchiveentryisdir})
|
|
|
|
with the given name and timestamp.
|
|
|
|
|
|
|
|
\helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} can
|
|
|
|
also be used to create directory entries, by supplying a name with
|
|
|
|
a trailing path separator.
|
|
|
|
|
|
|
|
|
|
|
|
\membersection{wxZipOutputStream::PutNextEntry}\label{wxzipoutputstreamputnextentry}
|
|
|
|
|
|
|
|
\func{bool}{PutNextEntry}{\param{wxZipEntry* }{entry}}
|
|
|
|
|
|
|
|
Takes ownership of {\tt entry} and uses it to create a new entry
|
|
|
|
in the zip.
|
|
|
|
|
|
|
|
\func{bool}{PutNextEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}}
|
|
|
|
|
|
|
|
Create a new entry with the given name, timestamp and size.
|
|
|
|
|
1999-07-10 17:17:24 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\membersection{wxZipOutputStream::SetComment}\label{wxzipoutputstreamsetcomment}
|
1999-07-10 17:17:24 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
\func{void}{SetComment}{\param{const wxString\& }{comment}}
|
1999-07-10 17:17:24 -04:00
|
|
|
|
2004-11-10 18:58:38 -05:00
|
|
|
Sets a comment for the zip as a whole. It is written at the end of the
|
|
|
|
zip.
|
1999-07-10 17:17:24 -04:00
|
|
|
|