#pragma once #include #include #include "File.h" #include "ZipEntry.h" #include "../Minecraft.Client/Common/libs/bit7z/include/bitarchivereader.hpp" class ZipFile { public: ZipFile(File* file); ZipFile(std::string name); std::vector listFiles(); bool hasFile(const std::wstring* name); bool hasFile(char* str); std::unique_ptr getEntry(const std::wstring* name); std::vector extract(const std::wstring* name); InputStream* getInputStream(ZipEntry* entry); InputStream* getInputStream(int entryId); private: static bit7z::Bit7zLibrary* _library; std::unique_ptr _reader; unordered_map _fileCache; bool open(File* file); };