33 lines
827 B
C++
33 lines
827 B
C++
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
#pragma once
|
|
|
|
#include "IO/FileDescription.hpp"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
#include <filesystem>
|
|
|
|
namespace OpenVulkano
|
|
{
|
|
class ZipWriter
|
|
{
|
|
std::vector<uint8_t> m_centralDirs;
|
|
int m_numFiles = 0;
|
|
bool m_pad = false;
|
|
FILE* m_file;
|
|
|
|
public:
|
|
ZipWriter(const std::filesystem::path& filePath, bool alignHeadersby64 = false);
|
|
~ZipWriter();
|
|
|
|
bool IsOpen() const { return m_file != nullptr; }
|
|
operator bool() const { return IsOpen(); }
|
|
|
|
void AddFile(const FileDescription& description, const void* buffer);
|
|
void AddFile(const std::filesystem::path& fileName, const char* inArchiveName);
|
|
};
|
|
} |