1% 2% automatically generated by HelpGen $Revision: 43373 $ from 3% wx/zipstrm.h at 16/Sep/04 12:19:29 4% 5 6\section{\class{wxZipClassFactory}}\label{wxzipclassfactory} 7 8Class factory for the zip archive format. See the base class 9for details. 10 11\wxheading{Derived from} 12 13\helpref{wxArchiveClassFactory}{wxarchiveclassfactory} 14 15\wxheading{Include files} 16 17<wx/zipstrm.h> 18 19\wxheading{See also} 20 21\helpref{Archive formats such as zip}{wxarc}\\ 22\helpref{Generic archive programming}{wxarcgeneric}\\ 23\helpref{wxZipEntry}{wxzipentry}\\ 24\helpref{wxZipInputStream}{wxzipinputstream}\\ 25\helpref{wxZipOutputStream}{wxzipoutputstream} 26 27 28% 29% automatically generated by HelpGen $Revision: 43373 $ from 30% wx/zipstrm.h at 16/Sep/04 12:19:29 31% 32 33\section{\class{wxZipEntry}}\label{wxzipentry} 34 35Holds the meta-data for an entry in a zip. 36 37\wxheading{Derived from} 38 39\helpref{wxArchiveEntry}{wxarchiveentry} 40 41\wxheading{Include files} 42 43<wx/zipstrm.h> 44 45\wxheading{Data structures} 46 47Constants for \helpref{Get/SetMethod}{wxzipentrymethod}: 48 49\begin{verbatim} 50// Compression Method, only 0 (store) and 8 (deflate) are supported here 51// 52enum wxZipMethod 53{ 54 wxZIP_METHOD_STORE, 55 wxZIP_METHOD_SHRINK, 56 wxZIP_METHOD_REDUCE1, 57 wxZIP_METHOD_REDUCE2, 58 wxZIP_METHOD_REDUCE3, 59 wxZIP_METHOD_REDUCE4, 60 wxZIP_METHOD_IMPLODE, 61 wxZIP_METHOD_TOKENIZE, 62 wxZIP_METHOD_DEFLATE, 63 wxZIP_METHOD_DEFLATE64, 64 wxZIP_METHOD_BZIP2 = 12, 65 wxZIP_METHOD_DEFAULT = 0xffff 66}; 67 68\end{verbatim} 69 70Constants for \helpref{Get/SetSystemMadeBy}{wxzipentrysystemmadeby}: 71 72\begin{verbatim} 73// Originating File-System. 74// 75// These are Pkware's values. Note that Info-zip disagree on some of them, 76// most notably NTFS. 77// 78enum wxZipSystem 79{ 80 wxZIP_SYSTEM_MSDOS, 81 wxZIP_SYSTEM_AMIGA, 82 wxZIP_SYSTEM_OPENVMS, 83 wxZIP_SYSTEM_UNIX, 84 wxZIP_SYSTEM_VM_CMS, 85 wxZIP_SYSTEM_ATARI_ST, 86 wxZIP_SYSTEM_OS2_HPFS, 87 wxZIP_SYSTEM_MACINTOSH, 88 wxZIP_SYSTEM_Z_SYSTEM, 89 wxZIP_SYSTEM_CPM, 90 wxZIP_SYSTEM_WINDOWS_NTFS, 91 wxZIP_SYSTEM_MVS, 92 wxZIP_SYSTEM_VSE, 93 wxZIP_SYSTEM_ACORN_RISC, 94 wxZIP_SYSTEM_VFAT, 95 wxZIP_SYSTEM_ALTERNATE_MVS, 96 wxZIP_SYSTEM_BEOS, 97 wxZIP_SYSTEM_TANDEM, 98 wxZIP_SYSTEM_OS_400 99}; 100 101\end{verbatim} 102 103Constants for \helpref{Get/SetExternalAttributes}{wxzipentryexternalattributes}: 104 105\begin{verbatim} 106// Dos/Win file attributes 107// 108enum wxZipAttributes 109{ 110 wxZIP_A_RDONLY = 0x01, 111 wxZIP_A_HIDDEN = 0x02, 112 wxZIP_A_SYSTEM = 0x04, 113 wxZIP_A_SUBDIR = 0x10, 114 wxZIP_A_ARCH = 0x20, 115 116 wxZIP_A_MASK = 0x37 117}; 118 119\end{verbatim} 120 121Constants for \helpref{Get/SetFlags}{wxzipentrygetflags}: 122 123\begin{verbatim} 124// Values for the flags field in the zip headers 125// 126enum wxZipFlags 127{ 128 wxZIP_ENCRYPTED = 0x0001, 129 wxZIP_DEFLATE_NORMAL = 0x0000, // normal compression 130 wxZIP_DEFLATE_EXTRA = 0x0002, // extra compression 131 wxZIP_DEFLATE_FAST = 0x0004, // fast compression 132 wxZIP_DEFLATE_SUPERFAST = 0x0006, // superfast compression 133 wxZIP_DEFLATE_MASK = 0x0006, 134 wxZIP_SUMS_FOLLOW = 0x0008, // crc and sizes come after the data 135 wxZIP_ENHANCED = 0x0010, 136 wxZIP_PATCH = 0x0020, 137 wxZIP_STRONG_ENC = 0x0040, 138 wxZIP_UNUSED = 0x0F80, 139 wxZIP_RESERVED = 0xF000 140}; 141 142\end{verbatim} 143 144\wxheading{See also} 145 146\helpref{Archive formats such as zip}{wxarc}\\ 147\helpref{wxZipInputStream}{wxzipinputstream}\\ 148\helpref{wxZipOutputStream}{wxzipoutputstream}\\ 149\helpref{wxZipNotifier}{wxzipnotifier} 150 151\wxheading{Field availability} 152 153When reading a zip from a stream that is seekable, 154 \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns 155a fully populated wxZipEntry object except for 156 \helpref{wxZipEntry::GetLocalExtra()}{wxzipentrylocalextra}. GetLocalExtra() 157becomes available when the entry is opened, either by calling 158 \helpref{wxZipInputStream::OpenEntry}{wxzipinputstreamopenentry} or by 159making an attempt to read the entry's data. 160 161For zips on \helpref{non-seekable}{wxarcnoseek} streams, the following 162fields are always available when GetNextEntry() returns: 163 164\helpref{GetDateTime}{wxarchiveentrydatetime}\\ 165\helpref{GetInternalFormat}{wxarchiveentrygetinternalformat}\\ 166\helpref{GetInternalName}{wxzipentrygetinternalname}\\ 167\helpref{GetFlags}{wxzipentrygetflags}\\ 168\helpref{GetLocalExtra}{wxzipentrylocalextra}\\ 169\helpref{GetMethod}{wxzipentrymethod}\\ 170\helpref{GetName}{wxarchiveentryname}\\ 171\helpref{GetOffset}{wxarchiveentrygetoffset}\\ 172\helpref{IsDir}{wxarchiveentryisdir} 173 174The following fields are also usually available when GetNextEntry() 175returns, however, if the zip was also written to a non-seekable stream 176the zipper is permitted to store them after the entry's data. In that 177case they become available when the entry's data has been read to Eof(), 178or \helpref{CloseEntry()}{wxarchiveinputstreamcloseentry} has been called. 179{\tt (GetFlags() \& wxZIP\_SUMS\_FOLLOW) != 0} indicates that one or 180more of these come after the data: 181 182\helpref{GetCompressedSize}{wxzipentrygetcompressedsize}\\ 183\helpref{GetCrc}{wxzipentrygetcrc}\\ 184\helpref{GetSize}{wxarchiveentrysize} 185 186The following are stored at the end of the zip, and become available 187when the end of the zip has been reached, i.e. after GetNextEntry() 188returns NULL and Eof() is true: 189 190\helpref{GetComment}{wxzipentrycomment}\\ 191\helpref{GetExternalAttributes}{wxzipentryexternalattributes}\\ 192\helpref{GetExtra}{wxzipentryextra}\\ 193\helpref{GetMode}{wxzipentrymode}\\ 194\helpref{GetSystemMadeBy}{wxzipentrysystemmadeby}\\ 195\helpref{IsReadOnly}{wxarchiveentryisreadonly}\\ 196\helpref{IsMadeByUnix}{wxzipentryismadebyunix}\\ 197\helpref{IsText}{wxzipentryistext} 198 199 200\latexignore{\rtfignore{\wxheading{Members}}} 201 202 203\membersection{wxZipEntry::wxZipEntry}\label{wxzipentrywxzipentry} 204 205\func{}{wxZipEntry}{\param{const wxString\& }{name = wxEmptyString}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}} 206 207Constructor. 208 209\func{}{wxZipEntry}{\param{const wxZipEntry\& }{entry}} 210 211Copy constructor. 212 213 214\membersection{wxZipEntry::Clone}\label{wxzipentryclone} 215 216\constfunc{wxZipEntry*}{Clone}{\void} 217 218Make a copy of this entry. 219 220 221\membersection{wxZipEntry::Get/SetComment}\label{wxzipentrycomment} 222 223\constfunc{wxString}{GetComment}{\void} 224 225\func{void}{SetComment}{\param{const wxString\& }{comment}} 226 227A short comment for this entry. 228 229 230\membersection{wxZipEntry::GetCompressedSize}\label{wxzipentrygetcompressedsize} 231 232\constfunc{off\_t}{GetCompressedSize}{\void} 233 234The compressed size of this entry in bytes. 235 236 237\membersection{wxZipEntry::GetCrc}\label{wxzipentrygetcrc} 238 239\constfunc{wxUint32}{GetCrc}{\void} 240 241CRC32 for this entry's data. 242 243 244\membersection{wxZipEntry::Get/SetExternalAttributes}\label{wxzipentryexternalattributes} 245 246\constfunc{wxUint32}{GetExternalAttributes}{\void} 247 248\func{void}{SetExternalAttributes}{\param{wxUint32 }{attr}} 249 250The low 8 bits are always the DOS/Windows file attributes for this entry. 251The values of these attributes are given in the 252enumeration {\tt wxZipAttributes}. 253 254The remaining bits can store platform specific permission bits or 255attributes, and their meaning depends on the value 256of \helpref{SetSystemMadeBy()}{wxzipentrysystemmadeby}. 257If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then the 258high 16 bits are unix mode bits. 259 260The following other accessors access these bits: 261 262\helpref{IsReadOnly/SetIsReadOnly}{wxarchiveentryisreadonly}\\ 263\helpref{IsDir/SetIsDir}{wxarchiveentryisdir}\\ 264\helpref{Get/SetMode}{wxzipentrymode} 265 266 267\membersection{wxZipEntry::Get/SetExtra}\label{wxzipentryextra} 268 269\constfunc{const char*}{GetExtra}{\void} 270 271\constfunc{size\_t}{GetExtraLen}{\void} 272 273\func{void}{SetExtra}{\param{const char* }{extra}, \param{size\_t }{len}} 274 275The extra field from the entry's central directory record. 276 277The extra field is used to store platform or application specific 278data. See Pkware's document 'appnote.txt' for information on its format. 279 280 281\membersection{wxZipEntry::GetFlags}\label{wxzipentrygetflags} 282 283\constfunc{int}{GetFlags}{\void} 284 285Returns a combination of the bits flags in the enumeration {\tt wxZipFlags}. 286 287 288\membersection{wxZipEntry::GetInternalName}\label{wxzipentrygetinternalname} 289 290\constfunc{wxString}{GetInternalName}{\void} 291 292Returns the entry's filename in the internal format used within the 293archive. The name can include directory components, i.e. it can be a 294full path. 295 296The names of directory entries are returned without any trailing path 297separator. This gives a canonical name that can be used in comparisons. 298 299\func{wxString}{GetInternalName}{\param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}, \param{bool* }{pIsDir = NULL}} 300 301A static member that translates a filename into the internal format used 302within the archive. If the third parameter is provided, the bool pointed 303to is set to indicate whether the name looks like a directory name 304(i.e. has a trailing path separator). 305 306\wxheading{See also} 307 308\helpref{Looking up an archive entry by name}{wxarcbyname} 309 310 311\membersection{wxZipEntry::Get/SetLocalExtra}\label{wxzipentrylocalextra} 312 313\constfunc{const char*}{GetLocalExtra}{\void} 314 315\constfunc{size\_t}{GetLocalExtraLen}{\void} 316 317\func{void}{SetLocalExtra}{\param{const char* }{extra}, \param{size\_t }{len}} 318 319The extra field from the entry's local record. 320 321The extra field is used to store platform or application specific 322data. See Pkware's document 'appnote.txt' for information on its format. 323 324 325\membersection{wxZipEntry::Get/SetMethod}\label{wxzipentrymethod} 326 327\constfunc{int}{GetMethod}{\void} 328 329\func{void}{SetMethod}{\param{int }{method}} 330 331The compression method. The enumeration {\tt wxZipMethod} lists the 332possible values. 333 334The default constructor sets this to wxZIP\_METHOD\_DEFAULT, 335which allows \helpref{wxZipOutputStream}{wxzipoutputstream} to 336choose the method when writing the entry. 337 338 339\membersection{wxZipEntry::Get/SetMode}\label{wxzipentrymode} 340 341\constfunc{int}{GetMode}{\void} 342 343If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then 344returns the unix permission bits stored in 345 \helpref{GetExternalAttributes()}{wxzipentryexternalattributes}. 346Otherwise synthesises them from the DOS attributes. 347 348\func{void}{SetMode}{\param{int }{mode}} 349 350Sets the DOS attributes 351in \helpref{GetExternalAttributes()}{wxzipentryexternalattributes} 352to be consistent with the {\tt mode} given. 353 354If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then also 355stores {\tt mode} in GetExternalAttributes(). 356 357Note that the default constructor 358sets \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby} to 359wxZIP\_SYSTEM\_MSDOS by default. So to be able to store unix 360permissions when creating zips, call SetSystemMadeBy(wxZIP\_SYSTEM\_UNIX). 361 362 363\membersection{wxZipEntry::SetNotifier}\label{wxzipentrynotifier} 364 365\func{void}{SetNotifier}{\param{wxZipNotifier\& }{notifier}} 366 367\func{void}{UnsetNotifier}{\void} 368 369Sets the \helpref{notifier}{wxzipnotifier} for this entry. 370Whenever the \helpref{wxZipInputStream}{wxzipinputstream} updates 371this entry, it will then invoke the associated 372notifier's \helpref{OnEntryUpdated}{wxzipnotifieronentryupdated} 373method. 374 375Setting a notifier is not usually necessary. It is used to handle 376certain cases when modifying an zip in a pipeline (i.e. between 377non-seekable streams). 378 379\wxheading{See also} 380 381\helpref{Archives on non-seekable streams}{wxarcnoseek}\\ 382\helpref{wxZipNotifier}{wxzipnotifier} 383 384 385\membersection{wxZipEntry::Get/SetSystemMadeBy}\label{wxzipentrysystemmadeby} 386 387\constfunc{int}{GetSystemMadeBy}{\void} 388 389\func{void}{SetSystemMadeBy}{\param{int }{system}} 390 391The originating file-system. The default constructor sets this to 392wxZIP\_SYSTEM\_MSDOS. Set it to wxZIP\_SYSTEM\_UNIX in order to be 393able to store unix permissions using \helpref{SetMode()}{wxzipentrymode}. 394 395 396\membersection{wxZipEntry::IsMadeByUnix}\label{wxzipentryismadebyunix} 397 398\constfunc{bool}{IsMadeByUnix}{\void} 399 400Returns true if \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby} 401is a flavour of unix. 402 403 404\membersection{wxZipEntry::IsText/SetIsText}\label{wxzipentryistext} 405 406\constfunc{bool}{IsText}{\void} 407 408\func{void}{SetIsText}{\param{bool }{isText = true}} 409 410Indicates that this entry's data is text in an 8-bit encoding. 411 412 413\membersection{wxZipEntry::operator=}\label{wxzipentryoperatorassign} 414 415\func{wxZipEntry\& operator}{operator=}{\param{const wxZipEntry\& }{entry}} 416 417Assignment operator. 418 419 420% 421% automatically generated by HelpGen $Revision: 43373 $ from 422% wx/zipstrm.h at 16/Sep/04 12:19:29 423% 424 425\section{\class{wxZipInputStream}}\label{wxzipinputstream} 426 427Input stream for reading zip files. 428 429\helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns an 430 \helpref{wxZipEntry}{wxzipentry} object containing the meta-data 431for the next entry in the zip (and gives away ownership). Reading from 432the wxZipInputStream then returns the entry's data. Eof() becomes true 433after an attempt has been made to read past the end of the entry's data. 434When there are no more entries, GetNextEntry() returns NULL and sets Eof(). 435 436Note that in general zip entries are not seekable, and 437wxZipInputStream::SeekI() always returns wxInvalidOffset. 438 439\wxheading{Derived from} 440 441\helpref{wxArchiveInputStream}{wxarchiveinputstream} 442 443\wxheading{Include files} 444 445<wx/zipstrm.h> 446 447\wxheading{Data structures} 448\begin{verbatim} 449typedef wxZipEntry entry_type 450\end{verbatim} 451 452\wxheading{See also} 453 454\helpref{Archive formats such as zip}{wxarc}\\ 455\helpref{wxZipEntry}{wxzipentry}\\ 456\helpref{wxZipOutputStream}{wxzipoutputstream} 457 458\latexignore{\rtfignore{\wxheading{Members}}} 459 460 461\membersection{wxZipInputStream::wxZipInputStream}\label{wxzipinputstreamwxzipinputstream} 462 463\func{}{wxZipInputStream}{\param{wxInputStream\& }{stream}, \param{wxMBConv\& }{conv = wxConvLocal}} 464 465\func{}{wxZipInputStream}{\param{wxInputStream*}{stream}, \param{wxMBConv\& }{conv = wxConvLocal}} 466 467Constructor. In a Unicode build the second parameter {\tt conv} is 468used to translate the filename and comment fields into Unicode. It has 469no effect on the stream's data. 470 471If the parent stream is passed as a pointer then the new filter stream 472takes ownership of it. If it is passed by reference then it does not. 473 474\func{}{wxZipInputStream}{\param{const wxString\& }{archive}, \param{const wxString\& }{file}} 475 476Compatibility constructor (requires WXWIN\_COMPATIBILITY\_2\_6). 477 478When this constructor is used, an emulation of seeking is 479switched on for compatibility with previous versions. Note however, 480that it is deprecated. 481 482 483\membersection{wxZipInputStream::CloseEntry}\label{wxzipinputstreamcloseentry} 484 485\func{bool}{CloseEntry}{\void} 486 487Closes the current entry. On a non-seekable stream reads to the end of 488the current entry first. 489 490 491\membersection{wxZipInputStream::GetComment}\label{wxzipinputstreamgetcomment} 492 493\func{wxString}{GetComment}{\void} 494 495Returns the zip comment. 496 497This is stored at the end of the zip, therefore when reading a zip 498from a non-seekable stream, it returns the empty string until the 499end of the zip has been reached, i.e. when GetNextEntry() returns 500NULL. 501 502 503\membersection{wxZipInputStream::GetNextEntry}\label{wxzipinputstreamgetnextentry} 504 505\func{wxZipEntry*}{GetNextEntry}{\void} 506 507Closes the current entry if one is open, then reads the meta-data for 508the next entry and returns it in a \helpref{wxZipEntry}{wxzipentry} 509object, giving away ownership. The stream is then open and can be read. 510 511 512\membersection{wxZipInputStream::GetTotalEntries}\label{wxzipinputstreamgettotalentries} 513 514\func{int}{GetTotalEntries}{\void} 515 516For a zip on a seekable stream returns the total number of entries in 517the zip. For zips on non-seekable streams returns the number of entries 518returned so far by \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry}. 519 520 521\membersection{wxZipInputStream::OpenEntry}\label{wxzipinputstreamopenentry} 522 523\func{bool}{OpenEntry}{\param{wxZipEntry\& }{entry}} 524 525Closes the current entry if one is open, then opens the entry specified 526by the {\it entry} object. 527 528{\it entry} should be from the same zip file, and the zip should 529be on a seekable stream. 530 531\wxheading{See also} 532 533\helpref{Looking up an archive entry by name}{wxarcbyname} 534 535 536% 537% automatically generated by HelpGen $Revision: 43373 $ from 538% wx/zipstrm.h at 16/Sep/04 12:19:29 539% 540 541\section{\class{wxZipNotifier}}\label{wxzipnotifier} 542 543If you need to know when a \helpref{wxZipInputStream}{wxzipinputstream} 544updates a \helpref{wxZipEntry}{wxzipentry}, 545you can create a notifier by deriving from this abstract base class, 546overriding \helpref{OnEntryUpdated()}{wxzipnotifieronentryupdated}. 547An instance of your notifier class can then be assigned to wxZipEntry 548objects, using \helpref{wxZipEntry::SetNotifier()}{wxzipentrynotifier}. 549 550Setting a notifier is not usually necessary. It is used to handle 551certain cases when modifying an zip in a pipeline (i.e. between 552non-seekable streams). 553See '\helpref{Archives on non-seekable streams}{wxarcnoseek}'. 554 555\wxheading{Derived from} 556 557No base class 558 559\wxheading{Include files} 560 561<wx/zipstrm.h> 562 563\wxheading{See also} 564 565\helpref{Archives on non-seekable streams}{wxarcnoseek}\\ 566\helpref{wxZipEntry}{wxzipentry}\\ 567\helpref{wxZipInputStream}{wxzipinputstream}\\ 568\helpref{wxZipOutputStream}{wxzipoutputstream} 569 570\latexignore{\rtfignore{\wxheading{Members}}} 571 572 573\membersection{wxZipNotifier::OnEntryUpdated}\label{wxzipnotifieronentryupdated} 574 575\func{void}{OnEntryUpdated}{\param{wxZipEntry\& }{entry}} 576 577Override this to receive notifications when 578an \helpref{wxZipEntry}{wxzipentry} object changes. 579 580 581% 582% automatically generated by HelpGen $Revision: 43373 $ from 583% wx/zipstrm.h at 16/Sep/04 12:19:29 584% 585 586\section{\class{wxZipOutputStream}}\label{wxzipoutputstream} 587 588Output stream for writing zip files. 589 590\helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} is used to create 591a new entry in the output zip, then the entry's data is written to the 592wxZipOutputStream. Another call to PutNextEntry() closes the current 593entry and begins the next. 594 595\wxheading{Derived from} 596 597\helpref{wxArchiveOutputStream}{wxarchiveoutputstream} 598 599\wxheading{Include files} 600 601<wx/zipstrm.h> 602 603\wxheading{See also} 604 605\helpref{Archive formats such as zip}{wxarc}\\ 606\helpref{wxZipEntry}{wxzipentry}\\ 607\helpref{wxZipInputStream}{wxzipinputstream} 608 609\latexignore{\rtfignore{\wxheading{Members}}} 610 611 612\membersection{wxZipOutputStream::wxZipOutputStream}\label{wxzipoutputstreamwxzipoutputstream} 613 614\func{}{wxZipOutputStream}{\param{wxOutputStream\& }{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}} 615 616\func{}{wxZipOutputStream}{\param{wxOutputStream*}{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}} 617 618Constructor. {\tt level} is the compression level to use. 619It can be a value between 0 and 9 or -1 to use the default value 620which currently is equivalent to 6. 621 622If the parent stream is passed as a pointer then the new filter stream 623takes ownership of it. If it is passed by reference then it does not. 624 625In a Unicode build the third parameter {\tt conv} is used to translate 626the filename and comment fields to an 8-bit encoding. It has no effect on the 627stream's data. 628 629 630\membersection{wxZipOutputStream::\destruct{wxZipOutputStream}}\label{wxzipoutputstreamdtor} 631 632\func{}{\destruct{wxZipOutputStream}}{\void} 633 634The destructor calls \helpref{Close()}{wxzipoutputstreamclose} to finish 635writing the zip if it has not been called already. 636 637 638\membersection{wxZipOutputStream::Close}\label{wxzipoutputstreamclose} 639 640\func{bool}{Close}{\void} 641 642Finishes writing the zip, returning true if successful. 643Called by the destructor if not called explicitly. 644 645 646\membersection{wxZipOutputStream::CloseEntry}\label{wxzipoutputstreamcloseentry} 647 648\func{bool}{CloseEntry}{\void} 649 650Close the current entry. It is called implicitly whenever another new 651entry is created with \helpref{CopyEntry()}{wxzipoutputstreamcopyentry} 652or \helpref{PutNextEntry()}{wxzipoutputstreamputnextentry}, or 653when the zip is closed. 654 655 656\membersection{wxZipOutputStream::CopyArchiveMetaData}\label{wxzipoutputstreamcopyarchivemetadata} 657 658\func{bool}{CopyArchiveMetaData}{\param{wxZipInputStream\& }{inputStream}} 659 660Transfers the zip comment from the \helpref{wxZipInputStream}{wxzipinputstream} 661to this output stream. 662 663 664\membersection{wxZipOutputStream::CopyEntry}\label{wxzipoutputstreamcopyentry} 665 666\func{bool}{CopyEntry}{\param{wxZipEntry* }{entry}, \param{wxZipInputStream\& }{inputStream}} 667 668Takes ownership of {\tt entry} and uses it to create a new entry 669in the zip. {\tt entry} is then opened in {\tt inputStream} and its contents 670copied to this stream. 671 672CopyEntry() is much more efficient than transferring the data using 673Read() and Write() since it will copy them without decompressing and 674recompressing them. 675 676For zips on seekable streams, {\tt entry} must be from the same zip file 677as {\tt stream}. For non-seekable streams, {\tt entry} must also be the 678last thing read from {\tt inputStream}. 679 680 681\membersection{wxZipOutputStream::Get/SetLevel}\label{wxzipoutputstreamlevel} 682 683\constfunc{int}{GetLevel}{\void} 684 685\func{void}{SetLevel}{\param{int }{level}} 686 687Set the compression level that will be used the next time an entry is 688created. It can be a value between 0 and 9 or -1 to use the default value 689which currently is equivalent to 6. 690 691 692\membersection{wxZipOutputStream::PutNextDirEntry}\label{wxzipoutputstreamputnextdirentry} 693 694\func{bool}{PutNextDirEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}} 695 696Create a new directory entry 697(see \helpref{wxArchiveEntry::IsDir()}{wxarchiveentryisdir}) 698with the given name and timestamp. 699 700\helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} can 701also be used to create directory entries, by supplying a name with 702a trailing path separator. 703 704 705\membersection{wxZipOutputStream::PutNextEntry}\label{wxzipoutputstreamputnextentry} 706 707\func{bool}{PutNextEntry}{\param{wxZipEntry* }{entry}} 708 709Takes ownership of {\tt entry} and uses it to create a new entry 710in the zip. 711 712\func{bool}{PutNextEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}} 713 714Create a new entry with the given name, timestamp and size. 715 716 717\membersection{wxZipOutputStream::SetComment}\label{wxzipoutputstreamsetcomment} 718 719\func{void}{SetComment}{\param{const wxString\& }{comment}} 720 721Sets a comment for the zip as a whole. It is written at the end of the 722zip. 723 724