Zip File

Detailed Description

Based upon zlib, see http://www.zlib.net/ for more information.

Groups

 EXTRACT_INFO
 
 FILETIME
 
 ZIP_APPEND
 
 ZIP_EXTRACT
 
 ZIP_FILE_FLAG
 
 ZIP_FILE_FLAG_UNIX
 
 ZIP_FLAG
 
 ZipMethod
 

Classes

struct  ZipFileTime
 
struct  ZipFileGlobalInfo
 
struct  ZipFileInfo
 
struct  ZipWriteInfo
 
class  ZipFile
 

Macros

#define COMPRESS_DATA_32_BYTE_PADDING
 
#define LIBRARY_ZIPFILE
 

Typedefs

typedef Int32(* ExtractDirectoryCallback) (const Filename &fnSrc, const Filename &fnDest, void *pData, Int32 lInfo)
 

Functions

Bool GetFileTime (const Filename &fn, UINT &nYear, UINT &nMonth, UINT &nDay, UINT &nHour, UINT &nMinute, UINT &nSec, Int32 lType, Bool bIsDir)
 
Bool SetFileTime (const Filename &fn, UINT nYear, UINT nMonth, UINT nDay, UINT nHour, UINT nMinute, UINT nSec, Int32 lType, Bool bIsDir)
 
Bool CompressDataRaw (const void *pSrcData, Int lSrcLen, void *pDestData, Int *plDestLen, Int32 lLevel)
 
Bool UncompressDataRaw (const void *pSrcData, Int lSrcLen, void *pDestData, Int *plDestLen, Int *plRead=nullptr)
 
Bool CompressData (const void *pSrcData, Int lSrcLen, void *&pDestData, Int &lDestLen, Int32 lLevel)
 
Bool UncompressData (const void *pSrcData, Int lSrcLen, void *&pDestData, Int &lDestLen, Int *plRead=nullptr)
 
ZHandle * CompressDataInit (Int32 lLevel)
 
Bool CompressDataDoIt (ZHandle *handle, const void *pSrcData, Int lSrcLen, void *&pDestData, Int &lDestLen, Int32 lFlags)
 
void CompressDataFree (ZHandle *&handle)
 

Macro Definition Documentation

◆ COMPRESS_DATA_32_BYTE_PADDING

#define COMPRESS_DATA_32_BYTE_PADDING

For CompressData(), COMPRESS_DATA_32_BYTE_PADDING | lLevel to make lDestLen a multiple of 32.

◆ LIBRARY_ZIPFILE

#define LIBRARY_ZIPFILE

ZIP file library ID.

Typedef Documentation

◆ ExtractDirectoryCallback

typedef Int32(* ExtractDirectoryCallback) (const Filename &fnSrc, const Filename &fnDest, void *pData, Int32 lInfo)

Called during file extraction.

Parameters
[in]fnSrcThe source filename within the ZIP file.
[in]fnDestThe filename of the destination file (the extracted file).
[in]pDataThe private data passed to ZipFile::ExtractToDirectory().
[in]lInfoThe extraction info: EXTRACT_INFO
Returns
The result: EXTRACT_INFO

Function Documentation

◆ GetFileTime()

Bool GetFileTime ( const Filename fn,
UINT nYear,
UINT nMonth,
UINT nDay,
UINT nHour,
UINT nMinute,
UINT nSec,
Int32  lType,
Bool  bIsDir 
)

Retrieves the time of a file.

Parameters
[in]fnThe file to get the time for.
[out]nYearAssigned the year.
[out]nMonthAssigned the month.
[out]nDayAssigned the day.
[out]nHourAssigned the hour.
[out]nMinuteAssigned the minute.
[out]nSecAssigned the second.
[in]lTypeThe type of file time to get: FILETIME
[in]bIsDirtrue for a directory.
Returns
true if successful, otherwise false.

◆ SetFileTime()

Bool SetFileTime ( const Filename fn,
UINT  nYear,
UINT  nMonth,
UINT  nDay,
UINT  nHour,
UINT  nMinute,
UINT  nSec,
Int32  lType,
Bool  bIsDir 
)

Sets the time of a file.

Parameters
[in]fnThe file to set the time for.
[in]nYearThe year.
[in]nMonthThe month.
[in]nDayThe day.
[in]nHourThe hour.
[in]nMinuteThe minute.
[in]nSecThe second.
[in]lTypeThe type of file time to set: FILETIME
[in]bIsDirtrue for a directory.
Returns
true if successful, otherwise false.

◆ CompressDataRaw()

Bool CompressDataRaw ( const void *  pSrcData,
Int  lSrcLen,
void *  pDestData,
Int plDestLen,
Int32  lLevel 
)

Compresses data into a caller supplied buffer.

Parameters
[in]pSrcDataThe source data.
[in]lSrcLenThe source data length.
[in,out]pDestDataFilled with the compressed data.
[in,out]plDestLenThe compressed data length. The destination buffer needs to be at least 0.1% bigger than the data to compress plus 12 bytes for the header.
Updated with the actual length used.
[in]lLevelThe compression level, ranges from 0 (min) to 9 (max).
Returns
true if successful, otherwise false.

◆ UncompressDataRaw()

Bool UncompressDataRaw ( const void *  pSrcData,
Int  lSrcLen,
void *  pDestData,
Int plDestLen,
Int plRead = nullptr 
)

Uncompresses data into a caller supplied buffer.

Parameters
[in]pSrcDataThe source data.
[in]lSrcLenThe source data length. May not be greater than 2 GB.
[in,out]pDestDataFilled with the uncompressed data. The buffer needs to be big enough to fit the uncompressed data.
[in,out]plDestLenThe uncompressed data length. Updated with the actual length used.
[out]plReadAssigned the amount of data read.
Returns
true if successful, otherwise false.

◆ CompressData()

Bool CompressData ( const void *  pSrcData,
Int  lSrcLen,
void *&  pDestData,
Int lDestLen,
Int32  lLevel 
)

Compresses data and give the caller a pointer in pDestData to memory that must be freed with DeleteMem().

Parameters
[in]pSrcDataThe source data.
[in]lSrcLenThe source data length. May not be greater than 2 GB.
[out]pDestDataAssigned a pointer to the destination compressed data. Needs to be freed with DeleteMem().
[out]lDestLenAssigned the destination length. Pass COMPRESS_DATA_32_BYTE_PADDING | lLevel to make lDestLen a multiple of 32.
[in]lLevelThe compression level, ranges from 0 (min) to 9 (max).
Returns
true if successful, otherwise false.

◆ UncompressData()

Bool UncompressData ( const void *  pSrcData,
Int  lSrcLen,
void *&  pDestData,
Int lDestLen,
Int plRead = nullptr 
)

Uncompresses data and give the caller a pointer in pDestData to memory that must be freed with DeleteMem().

Parameters
[in]pSrcDataThe source data.
[in]lSrcLenThe source data length. May not be greater than 2 GB.
[out]pDestDataAssigned the destination data pointer. Needs to be freed with DeleteMem().
[out]lDestLenAssigned the destination length.
[out]plReadAssigned the amount of data read.
Returns
true if successful, otherwise false.

◆ CompressDataInit()

ZHandle* CompressDataInit ( Int32  lLevel)

Initializes data compression.

See also
CompressDataDoIt()
Parameters
[in]lLevelThe compression level, ranges from 0 (min) to 9 (max).
Returns
The handle for data compression.

◆ CompressDataDoIt()

Bool CompressDataDoIt ( ZHandle *  handle,
const void *  pSrcData,
Int  lSrcLen,
void *&  pDestData,
Int lDestLen,
Int32  lFlags 
)

Compresses data.
Example:

static ZHandle *zhandle = nullptr;
zhandle = CompressDataInit(5);
res = zhandle && CompressDataDoIt(zhandle, c, l, l_zippedmem, l_ziplen, 0);
DeleteMem(l_zippedmem);
Py_UNICODE c
Definition: unicodeobject.h:1200
Py_UCS4 * res
Definition: unicodeobject.h:1113
Bool CompressDataDoIt(ZHandle *handle, const void *pSrcData, Int lSrcLen, void *&pDestData, Int &lDestLen, Int32 lFlags)
ZHandle * CompressDataInit(Int32 lLevel)
void CompressDataFree(ZHandle *&handle)
void DeleteMem(T *&p)
Definition: defaultallocator.h:257
PyObject PyObject int PyObject PyObject * l
Definition: pythonrun.h:156
Parameters
[in]handleThe handle for data compression.
[in]pSrcDataThe address to the source data.
[in]lSrcLenThe size of the source data block.
[out]pDestDataAssigned the address of the compressed data. Must be freed with DeleteMem().
[out]lDestLenAssigned the size of the compressed data block.
[in]lFlagsUsually 0 but can be set to COMPRESS_DATA_32_BYTE_PADDING.
Returns
true if successful, otherwise false.

◆ CompressDataFree()

void CompressDataFree ( ZHandle *&  handle)

Frees the handle of the compressed data. See also CompressDataDoIt().

Parameters
[in,out]handleThe handle for data compression to be freed.