File Information
Library: Zip
Package: Zip
Header: Poco/Zip/Compress.h
Description
Compresses a directory or files as zip.
Member Summary
Member Functions: addDirectory, addFile, addRecursive, close, getStoreExtensions, getZipComment, setStoreExtensions, setZipComment
Constructors
Compress
Compress(
std::ostream & out,
bool seekableOut,
bool forceZip64 = false
);
seekableOut determines how we write the zip, setting it to true is recommended for local files (smaller zip file), if you are compressing directly to a network, you MUST set it to false If forceZip64 is set true then the file header is allocated with zip64 extension so that it can be updated after the file data is written if seekableOut is true in case the compressed or uncompressed size exceeds 32 bits.
Destructor
~Compress
~Compress();
Member Functions
addDirectory
void addDirectory(
const Poco::Path & entryName,
const Poco::DateTime & lastModifiedAt
);
Adds a directory entry excluding all children to the Zip file, entryName must not be empty.
addFile
void addFile(
std::istream & input,
const Poco::DateTime & lastModifiedAt,
const Poco::Path & fileName,
ZipCommon::CompressionMethod cm = ZipCommon::CM_DEFLATE,
ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM
);
addFile
void addFile(
const Poco::Path & file,
const Poco::Path & fileName,
ZipCommon::CompressionMethod cm = ZipCommon::CM_DEFLATE,
ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM
);
Adds a single file to the Zip File. fileName must not be a directory name. The file must exist physically!
addRecursive
void addRecursive(
const Poco::Path & entry,
ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM,
bool excludeRoot = true,
const Poco::Path & name = Poco::Path ()
);
Adds a directory entry recursively to the zip file, set excludeRoot to false to exclude the parent directory. If excludeRoot is true you can specify an empty name to add the files as relative files
addRecursive
void addRecursive(
const Poco::Path & entry,
ZipCommon::CompressionMethod cm,
ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM,
bool excludeRoot = true,
const Poco::Path & name = Poco::Path ()
);
Adds a directory entry recursively to the zip file, set excludeRoot to false to exclude the parent directory. If excludeRoot is true you can specify an empty name to add the files as relative files
close
ZipArchive close();
Finalizes the ZipArchive, closes it.
getStoreExtensions
const std::set < std::string > & getStoreExtensions() const;
Returns the file extensions for which the CM_STORE compression method is used if CM_AUTO is specified in addFile() or addRecursive().
See setStoreExtensions() for more information.
getZipComment
const std::string & getZipComment() const;
Returns the Zip file comment.
setStoreExtensions
void setStoreExtensions(
const std::set < std::string > & extensions
);
Sets the file extensions for which the CM_STORE compression method is used if CM_AUTO is specified in addFile() or addRecursive(). For all other extensions, CM_DEFLATE is used. This is used to avoid double compression of already compressed file formats, which usually leads to worse results. Extensions will be converted to lower case.
The default extensions are:
- gif
- jpg
- jpeg
- png
setZipComment
void setZipComment(
const std::string & comment
);
Sets the Zip file comment.
Variables
EDone
Poco::FIFOEvent < const ZipLocalFileHeader > EDone;