class Decompress

Library: Zip
Package: Zip
Header: Poco/Zip/Decompress.h


Decompress extracts files from zip files, can be used to extract single files or all files


Direct Base Classes: ParseCallback

All Base Classes: ParseCallback

Member Summary

Member Functions: decompressAllFiles, handleZipEntry, mapping

Inherited Functions: handleZipEntry



typedef std::map < std::string, Poco::Path > ZipMapping;

Maps key of FileInfo entries to their local decompressed representation



    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.


~Decompress virtual


Destroys the Decompress.

Member Functions


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 virtual

bool handleZipEntry(
    std::istream & zipStream,
    const ZipLocalFileHeader & hdr

mapping inline

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



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


Poco::FIFOEvent < std::pair < const ZipLocalFileHeader, const Poco::Path > > EOk;

Thrown whenever a file was successfully decompressed