Poco::Zip

class Decompress

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 virtual

~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 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

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