#include <lib_zipfile.h>
Allows to read/write ZIP files.
Private Member Functions | |
| ZipFile () | |
| ~ZipFile () | |
Alloc/Free | |
| static ZipFile * | Alloc () |
| static void | Free (ZipFile *&p) |
Static | |
| static Bool | CreateLocalFileName (const Filename &fn, String &str) |
| static Bool | CreateFilename (const String &str, Filename &fn) |
| static Bool | GetFileCRC (const Filename &fn, UInt32 &ulCRC) |
| static UInt32 | CalcCRC32 (const void *pBuffer, Int32 lBufferLen, UInt32 ulOldCRC=0) |
Open/Extract/Close | |
| Bool | Open (const Filename &fn, const Bool bRead, const Int32 lAppend=0) |
| Bool | OpenEncrypted (const Filename &fn, const Bool bRead, const char *pchKey, Int32 lKeyLength, Int32 lBlockLength, UInt32 lAESFlags, const Int32 lAppend=0) |
| Bool | SetSpanning (UInt32 ulSpan, Bool bOverwrite) |
| Bool | ExtractToDirectory (const Filename &fnZip, const Filename &fnDir, Int32 lFlags=0x00000001, ExtractDirectoryCallback fn=nullptr, void *pData=nullptr, const char *pChPassword=nullptr) |
| Bool | Close () |
| Bool | Close (const char *pchGlobalComment) |
| Bool | Close (const String &strGlobalComment) |
Write | |
| Bool | CreateFileInZip (const String &strName, ZipWriteInfo *pInfo, void *pExtraFieldLocal, UInt32 lExtraSizeLocal, void *pExtraFieldGlobal, UInt32 lExtraSizeGlobal, String *pstrComment, ZipMethod method, INT lLevel, const char *pchPassword=nullptr, UInt32 ulCryptingCRC=0) |
| Bool | WriteInFileInZip (const void *pBuffer, const UInt32 lLen, const Int32 lExpectedSize=-1) |
| Bool | CopyInFileInZip (const Filename &fn, const String &str, const char *pchPassword=nullptr) |
| Bool | CopyInFileInZip (const Filename &fn, const String &str, UInt32 ulInternalAttributes, UInt32 ulExternalAttributes, const char *pchPassword=nullptr) |
| Bool | CloseFileInZip () |
| Bool | CreateDirectoryInZip (const String &strName, ZipFileTime *pTime) |
Read | |
| Bool | GetGlobalInfo (ZipFileGlobalInfo &i) |
| Bool | GetGlobalComment (String &str) |
| Bool | GoToFirstFile () |
| Bool | GoToNextFile () |
| Bool | LocateFile (const String &strName) |
| Bool | GetCurrentFileInfo (ZipFileInfo &i) |
| Bool | GetCurrentFileInfo (String *pstrName, String *pstrComment=nullptr, void *pExtraField=nullptr, UInt32 lExtraFieldSize=0) |
| Bool | ExtractCurrentFile (const Filename &fnDir, BaseThread *pThread, Int32 lFlags=0x00000001, const char *pchPassword=nullptr, Filename *pfnDest=nullptr) |
| Bool | ExtractCurrentFile (const Filename &fnDir, Int32 lFlags=0x00000001, const char *pchPassword=nullptr, Filename *pfnDest=nullptr) |
| Bool | OpenCurrentFile (const char *pChPassword=nullptr) |
| Bool | CloseCurrentFile () |
| Int32 | ReadCurrentFile (void *pBuffer, UInt32 lBufferSize) |
| Int32 | GetCurrentFileReadPosition () |
| Bool | EndOfCurrentFile () |
Compression Level | |
| Bool | SetCompressionLevel (Int32 lLevel) |
| Int32 | GetCompressionLevel () const |
|
private |
|
private |
|
static |
|
static |
Creates a local file name.
| [in] | fn | The filename to create from. |
| [out] | str | Assigned the local file name to create. |
Creates a file name.
| [in] | str | The file string to create from. |
| [in] | fn | Assigned the filename to create. |
Gets a ZIP file CRC.
| [in] | fn | The filename to get the CRC for. |
| [out] | ulCRC | The calculated CRC. |
Calculates the CRC from a buffer.
| [in] | pBuffer | The buffer to calculate the CRC from. |
| [in] | lBufferLen | The buffer length. |
| [in] | ulOldCRC | The optional initial CRC value. |
Opens a ZIP file.
| [in] | fn | The file to open. |
| [in] | bRead | true to open for reading, otherwise false. |
| [in] | lAppend | The append flags to append the ZIP file to an existing file: ZIP_APPEND |
| Bool OpenEncrypted | ( | const Filename & | fn, |
| const Bool | bRead, | ||
| const char * | pchKey, | ||
| Int32 | lKeyLength, | ||
| Int32 | lBlockLength, | ||
| UInt32 | lAESFlags, | ||
| const Int32 | lAppend = 0 |
||
| ) |
Opens an AES encrypted ZIP file, see AESFile.
| [in] | fn | The encrypted file to open. |
| [in] | bRead | true to open for reading, otherwise false. |
| [in] | pchKey | The decryption key. |
| [in] | lKeyLength | The key length. Must be 128, 192 or 256 (bits). |
| [in] | lBlockLength | The block size. Must be 128, 192 or 256 (bits). |
| [in] | lAESFlags | Reserved for later use. Must be set to 0. |
| [in] | lAppend | The append flags to append the ZIP file to an existing file: ZIP_APPEND |
Sets the maximum size of the ZIP file. A new file is created with the same name and a consecutive number if it exceeds this size.
| [in] | ulSpan | The maximum size of the file. |
| [in] | bOverwrite | If true the next file is overwritten. |
| Bool ExtractToDirectory | ( | const Filename & | fnZip, |
| const Filename & | fnDir, | ||
| Int32 | lFlags = 0x00000001, |
||
| ExtractDirectoryCallback | fn = nullptr, |
||
| void * | pData = nullptr, |
||
| const char * | pChPassword = nullptr |
||
| ) |
Extracts the ZIP file to the specified directory.
| [in] | fnZip | The ZIP filename. |
| [in] | fnDir | The directory to extract to. |
| [in] | lFlags | The extract flags: ZIP_EXTRACT |
| [in] | fn | The extract callback. |
| [in] | pData | The private data for the extract callback. |
| [in] | pChPassword | An optional password. |
| Bool Close | ( | ) |
Closes the ZIP file.
| Bool Close | ( | const char * | pchGlobalComment | ) |
Closes the ZIP file and writes a comment.
| [in] | pchGlobalComment | The global comment string. |
Closes the ZIP file and writes a comment.
| [in] | strGlobalComment | The global comment string. |
| Bool CreateFileInZip | ( | const String & | strName, |
| ZipWriteInfo * | pInfo, | ||
| void * | pExtraFieldLocal, | ||
| UInt32 | lExtraSizeLocal, | ||
| void * | pExtraFieldGlobal, | ||
| UInt32 | lExtraSizeGlobal, | ||
| String * | pstrComment, | ||
| ZipMethod | method, | ||
| INT | lLevel, | ||
| const char * | pchPassword = nullptr, |
||
| UInt32 | ulCryptingCRC = 0 |
||
| ) |
Creates a file in the ZIP file.
| [in] | strName | The file name. |
| [in] | pInfo | The write information. |
| [in] | pExtraFieldLocal | The extra local field. |
| [in] | lExtraSizeLocal | The extra local size. |
| [in] | pExtraFieldGlobal | The extra global field. |
| [in] | lExtraSizeGlobal | The extra global size. |
| [in] | pstrComment | The comment string. |
| [in] | method | The ZIP method: ZipMethod |
| [in] | lLevel | The ZIP compression level, between 0 and 9. |
| [in] | pchPassword | An optional password. |
| [in] | ulCryptingCRC | An optional encryption CRC. |
Writes a buffer in the ZIP file.
| [in] | pBuffer | The buffer to write. |
| [in] | lLen | The buffer length. |
| [in] | lExpectedSize | An optional expected size. |
| Bool CopyInFileInZip | ( | const Filename & | fn, |
| const String & | str, | ||
| const char * | pchPassword = nullptr |
||
| ) |
Copies a file in the ZIP file.
| [in] | fn | The file to copy. |
| [in] | str | The destination file name. |
| [in] | pchPassword | An optional password. |
| Bool CopyInFileInZip | ( | const Filename & | fn, |
| const String & | str, | ||
| UInt32 | ulInternalAttributes, | ||
| UInt32 | ulExternalAttributes, | ||
| const char * | pchPassword = nullptr |
||
| ) |
Copies a file in the ZIP file.
| [in] | fn | The file to copy. |
| [in] | str | The destination file name. |
| [in] | ulInternalAttributes | The internal file attributes. |
| [in] | ulExternalAttributes | The external file attributes. |
| [in] | pchPassword | An optional password. |
| Bool CloseFileInZip | ( | ) |
Closes a file in the ZIP file.
| Bool CreateDirectoryInZip | ( | const String & | strName, |
| ZipFileTime * | pTime | ||
| ) |
Creates a directory in the ZIP file. A slash is added if necessary.
| [in] | strName | The directory name. |
| [in] | pTime | The directory time. |
| Bool GetGlobalInfo | ( | ZipFileGlobalInfo & | i | ) |
Retrieves the global information.
| [out] | i | Filled with the global information. |
Retrieves the global comment.
| [out] | str | Filled with the global comment. |
| Bool GoToFirstFile | ( | ) |
Goes to the first file.
| Bool GoToNextFile | ( | ) |
Goes to the next file.
Locates a file.
| [in] | strName | The file name to locate. |
| Bool GetCurrentFileInfo | ( | ZipFileInfo & | i | ) |
Retrieves the information for the current file.
| [out] | i | Filled with the current file information. |
| Bool GetCurrentFileInfo | ( | String * | pstrName, |
| String * | pstrComment = nullptr, |
||
| void * | pExtraField = nullptr, |
||
| UInt32 | lExtraFieldSize = 0 |
||
| ) |
Retrieves the information for the current file.
| [out] | pstrName | Filled with the current file name. |
| [out] | pstrComment | Filled with the current file comment. |
| [out] | pExtraField | Filled with the current file extra field. |
| [out] | lExtraFieldSize | Filled with the current file extra field size. |
| Bool ExtractCurrentFile | ( | const Filename & | fnDir, |
| BaseThread * | pThread, | ||
| Int32 | lFlags = 0x00000001, |
||
| const char * | pchPassword = nullptr, |
||
| Filename * | pfnDest = nullptr |
||
| ) |
Extracts the contents of the current archive to the directory fnDir.
| [in] | fnDir | The directory to extract the files to. |
| [in] | pThread | The thread for extracting in an own thread. |
| [in] | lFlags | The extract flags: ZIP_EXTRACT |
| [in] | pchPassword | An optional password. |
| [out] | pfnDest | An optional filename pointer filled with the destination. |
| Bool ExtractCurrentFile | ( | const Filename & | fnDir, |
| Int32 | lFlags = 0x00000001, |
||
| const char * | pchPassword = nullptr, |
||
| Filename * | pfnDest = nullptr |
||
| ) |
Extracts the contents of the current archive to the directory fnDir.
| [in] | fnDir | The directory to extract the files to. |
| [in] | lFlags | The extract flags: ZIP_EXTRACT |
| [in] | pchPassword | An optional password. |
| [out] | pfnDest | An optional filename pointer filled with the destination. |
| Bool OpenCurrentFile | ( | const char * | pChPassword = nullptr | ) |
Opens the current file with password protection.
| [in] | pChPassword | An optional password. |
| Bool CloseCurrentFile | ( | ) |
Closes the current file.
Reads a buffer from the current file.
| [in,out] | pBuffer | The buffer to read to. |
| [in,out] | lBufferSize | The buffer size. |
| Int32 GetCurrentFileReadPosition | ( | ) |
Gets the read position in the current file.
| Bool EndOfCurrentFile | ( | ) |
Checks for the end of the current file.
Sets the compression level of the ZIP file.
| [in] | lLevel | The compression level, ranges from 0 (min) to 9 (max). |
| Int32 GetCompressionLevel | ( | ) | const |
Gets the compression level of the ZIP file.