zip_archive

Defined in header: <orcus/zip_archive.hpp>

class zip_archive

Public Functions

zip_archive() = delete
zip_archive(const zip_archive&) = delete
zip_archive &operator=(const zip_archive) = delete
zip_archive(zip_archive_stream *stream)
~zip_archive()
void load()

Loading involves the parsing of the central directory of a zip archive (located toward the end of the stream) and building of file entry data which are stored in the central directory.

zip_file_entry_header get_file_entry_header(std::size_t index) const

Retrieve the header information for a file entry specified by index.

Parameters:

index – file entry index.

Returns:

header information for a file entry.

zip_file_entry_header get_file_entry_header(std::string_view name) const

Retrieve the header information for a file entry specified by name.

Parameters:

name – file entry name.

Returns:

header information for a file entry.

std::string_view get_file_entry_name(std::size_t index) const

Get file entry name from its index.

Parameters:

index – file entry index

Returns:

file entry name

size_t get_file_entry_count() const

Return the number of file entries stored in this zip archive. Note that a file entry may be a directory, so the number of files stored in the zip archive may not equal the number of file entries.

Returns:

number of file entries.

std::vector<unsigned char> read_file_entry(std::string_view entry_name) const

Retrieve data stream of specified file entry. The retrieved data stream gets uncompressed if the original stream is compressed.

Parameters:

entry_name – file entry name.

Throws:

zip_error – thrown when any problem is encountered during data stream retrieval.

Returns:

buffer containing the data stream for specified entry.