После успешного сжатия (с использованием Poco lib) я обнаружил, что могу распаковать ZIP-файл, содержащий файлы, но не подпапку
Мой блок кода распаковки:
struct UnzipStruct unzipObject;
unzipObject.unzip(source, target);
Вот MyUnzipStruct:
struct UnzipStruct
{
void unzip(std::string source, std::string target) {
fs::path sourcePath = fs::path(source);
std::ifstream inp(sourcePath.string(), ios::binary);
fs::path targetPath = fs::path(target);
Poco::Path targetDir(targetPath.string());
Poco::Zip::Decompress dec(inp, targetDir, false, true);
// if an error happens invoke the ZipHandlingLib::onDecompressError method
dec.EError += Poco::Delegate<UnzipStruct, std::pair<const Poco::Zip::ZipLocalFileHeader, const std::string>>(this, &UnzipStruct::onDecompressError);
dec.decompressAllFiles();
dec.EError -= Poco::Delegate<UnzipStruct, std::pair<const Poco::Zip::ZipLocalFileHeader, const std::string>>(this, &UnzipStruct::onDecompressError);
inp.close();
}
void onDecompressError(const void* pSender, std::pair<const Poco::Zip::ZipLocalFileHeader, const std::string>& info)
{
std::cerr << info.second << "\n";
}
} unzipObject;
Это ошибка Poco или я что-то не так сделал? Потому что я могу извлечь zip-файл на 7z (который содержит подпапку). Исключением, которое я получаю, является AssertionViolationException от Poco.