Home
Archive module

ZipFile

ZIP archive reader and writer.

ZipFile

#include <icy/archo/zipfile.h>
struct ZipFile

Defined in src/archo/include/icy/archo/zipfile.h:35

ZIP archive reader and writer.

List of all members

NameKindOwner
infovariableDeclared here
fpvariableDeclared here
ZipFilefunctionDeclared here
ZipFilefunctionDeclared here
~ZipFilefunctionDeclared here
ZipFilefunctionDeclared here
operator=functionDeclared here
ZipFilefunctionDeclared here
operator=functionDeclared here
openfunctionDeclared here
openedfunctionDeclared here
closefunctionDeclared here
extractfunctionDeclared here
extractCurrentFilefunctionDeclared here
goToFirstFilefunctionDeclared here
goToNextFilefunctionDeclared here
openCurrentFilefunctionDeclared here
closeCurrentFilefunctionDeclared here
currentFileNamefunctionDeclared here

Public Attributes

ReturnNameDescription
std::vector< FileInfo >info
unzFilefp

info

std::vector< FileInfo > info

Defined in src/archo/include/icy/archo/zipfile.h:104


fp

unzFile fp

Defined in src/archo/include/icy/archo/zipfile.h:105

Public Methods

ReturnNameDescription
ZipFileConstructs an unopened ZipFile. Call open() before use.
ZipFile explicitConstructs a ZipFile and immediately opens the archive at file.
~ZipFileCloses the archive if still open.
ZipFileDeleted constructor.
ZipFileDeleted constructor.
voidopenOpens the archive at file, closing any previously opened archive. Populates the info vector with metadata for every entry.
boolopened constReturns true if the archive is currently open.
voidcloseCloses the archive and releases the underlying file handle.
voidextractExtracts the archive contents to the given directory path.
boolextractCurrentFileExtracts the current file entry to path. Validates each entry against path-traversal attacks before writing.
boolgoToFirstFileMoves the internal cursor to the first file entry in the archive.
boolgoToNextFileAdvances the internal cursor to the next file entry.
voidopenCurrentFileOpens the current file entry for reading.
voidcloseCurrentFileCloses the current file entry.
std::stringcurrentFileNameReturns the name (relative path) of the current file entry.

ZipFile

ZipFile()

Defined in src/archo/include/icy/archo/zipfile.h:38

Constructs an unopened ZipFile. Call open() before use.


ZipFile

explicit

explicit ZipFile(const std::filesystem::path & file)

Defined in src/archo/include/icy/archo/zipfile.h:42

Constructs a ZipFile and immediately opens the archive at file.

Parameters

  • file Path to the ZIP archive to open.

~ZipFile

~ZipFile()

Defined in src/archo/include/icy/archo/zipfile.h:45

Closes the archive if still open.


ZipFile

ZipFile(const ZipFile &) = delete

Defined in src/archo/include/icy/archo/zipfile.h:47

Deleted constructor.


ZipFile

ZipFile(ZipFile &&) = delete

Defined in src/archo/include/icy/archo/zipfile.h:49

Deleted constructor.


open

void open(const std::filesystem::path & file)

Defined in src/archo/include/icy/archo/zipfile.h:56

Opens the archive at file, closing any previously opened archive. Populates the info vector with metadata for every entry.

Parameters

  • file Path to the ZIP archive.

Exceptions

  • std::runtime_error if the file cannot be opened.

opened

const

bool opened() const

Defined in src/archo/include/icy/archo/zipfile.h:59

Returns true if the archive is currently open.


close

void close()

Defined in src/archo/include/icy/archo/zipfile.h:62

Closes the archive and releases the underlying file handle.


extract

void extract(const std::filesystem::path & path)

Defined in src/archo/include/icy/archo/zipfile.h:67

Extracts the archive contents to the given directory path.

Parameters

  • path Destination directory; created automatically if necessary.

Exceptions

  • std::runtime_error if the archive is not open or a read error occurs.

extractCurrentFile

bool extractCurrentFile(const std::filesystem::path & path, bool whiny = true)

Defined in src/archo/include/icy/archo/zipfile.h:74

Extracts the current file entry to path. Validates each entry against path-traversal attacks before writing.

Parameters

  • path Destination base directory.

  • whiny If true, re-throws on error; otherwise returns false.

Returns

true on success, false if whiny is false and an error occurred.


goToFirstFile

bool goToFirstFile()

Defined in src/archo/include/icy/archo/zipfile.h:78

Moves the internal cursor to the first file entry in the archive.

Returns

true on success, false if the archive is empty or an error occurred.


goToNextFile

bool goToNextFile()

Defined in src/archo/include/icy/archo/zipfile.h:82

Advances the internal cursor to the next file entry.

Returns

true if another entry exists, false at end-of-list.


openCurrentFile

void openCurrentFile()

Defined in src/archo/include/icy/archo/zipfile.h:86

Opens the current file entry for reading.

Exceptions

  • std::runtime_error on failure.

closeCurrentFile

void closeCurrentFile()

Defined in src/archo/include/icy/archo/zipfile.h:90

Closes the current file entry.

Exceptions

  • std::runtime_error on failure.

currentFileName

std::string currentFileName()

Defined in src/archo/include/icy/archo/zipfile.h:94

Returns the name (relative path) of the current file entry.

Returns

Entry name as reported by the ZIP directory.