Files
crosspoint-reader/lib/ZipFile/ZipFile.h

21 lines
678 B
C
Raw Normal View History

2025-12-03 22:00:29 +11:00
#pragma once
#include <Print.h>
2025-12-03 22:00:29 +11:00
#include <string>
#include "miniz.h"
2025-12-03 22:00:29 +11:00
class ZipFile {
std::string filePath;
mutable mz_zip_archive zipArchive = {};
bool loadFileStat(const char* filename, mz_zip_archive_file_stat* fileStat) const;
long getDataOffset(const mz_zip_archive_file_stat& fileStat) const;
2025-12-03 22:00:29 +11:00
public:
explicit ZipFile(std::string filePath);
~ZipFile() { mz_zip_reader_end(&zipArchive); }
bool getInflatedFileSize(const char* filename, size_t* size) const;
2025-12-03 22:00:29 +11:00
uint8_t* readFileToMemory(const char* filename, size_t* size = nullptr, bool trailingNullByte = false) const;
bool readFileToStream(const char* filename, Print& out, size_t chunkSize) const;
2025-12-03 22:00:29 +11:00
};