diff --git a/lib/filesystem/CArchiveLoader.cpp b/lib/filesystem/CArchiveLoader.cpp index e36fd532c..73c9efc92 100644 --- a/lib/filesystem/CArchiveLoader.cpp +++ b/lib/filesystem/CArchiveLoader.cpp @@ -231,15 +231,8 @@ void CArchiveLoader::extractToFolder(const std::string & outputSubFolder, const { std::unique_ptr inputStream = load(ResourceID(mountPoint + entry.name)); - std::vector data(entry.fullSize); - inputStream->read(data.data(), entry.fullSize); - - bfs::path extractedFilePath = createExtractedFilePath(outputSubFolder, entry.name); - - // writeToOutputFile - std::ofstream out(extractedFilePath.string(), std::ofstream::binary); - out.exceptions(std::ifstream::failbit | std::ifstream::badbit); - out.write((char*)data.data(), entry.fullSize); + entry.offset = 0; + extractToFolder(outputSubFolder, *inputStream, entry); } bfs::path createExtractedFilePath(const std::string & outputSubFolder, const std::string & entryName)