Library: Zip
Package: Zip
Header: Poco/Zip/Decompress.h
Description
Decompress extracts files from zip files, can be used to extract single files or all files
Inheritance
Direct Base Classes: ParseCallback
All Base Classes: ParseCallback
Member Summary
Member Functions: decompressAllFiles, handleZipEntry, mapping
Inherited Functions: handleZipEntry
Types Aliases
ZipMapping
using ZipMapping = std::map < std::string, Poco::Path >;
Maps key of FileInfo entries to their local decompressed representation
Constructors
Decompress
Decompress(
std::istream & in,
const Poco::Path & outputDir,
bool flattenDirs = false,
bool keepIncompleteFiles = false
);
Creates the Decompress. Note that istream must be good and at the very beginning of the file! Calling decompressAllFiles will cause the stream to be in state failed once the zip file is processed. outputDir must be a directory. If it doesn't exist yet, it will be automatically created. If flattenDirs is set to true, the directory structure of the zip file is not recreated. Instead, all files are extracted into one single directory.
Destructor
~Decompress
~Decompress();
Destroys the Decompress.
Member Functions
decompressAllFiles
ZipArchive decompressAllFiles();
Decompresses all files stored in the zip File. Can only be called once per Decompress object. Use mapping to retrieve the location of the decompressed files
handleZipEntry
bool handleZipEntry(
std::istream & zipStream,
const ZipLocalFileHeader & hdr
);
mapping
const ZipMapping & mapping() const;
A ZipMapping stores as key the full name of the ZipFileInfo/ZipLocalFileHeader and as value the decompressed file If for a ZipFileInfo no mapping exists, there was an error during decompression and the entry is considered to be corrupt
Variables
EError
Poco::FIFOEvent < std::pair < const ZipLocalFileHeader, const std::string >> EError;
Thrown whenever an error is detected when handling a ZipLocalFileHeader entry. The string contains an error message
EOk
Poco::FIFOEvent < std::pair < const ZipLocalFileHeader, const Poco::Path >> EOk;
Thrown whenever a file was successfully decompressed