diff options
author | Alex Zolotarev <deathbaba@gmail.com> | 2012-02-23 15:16:56 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:34:35 +0300 |
commit | 2499a0554430b840c6bbee52c147250fe64481f8 (patch) | |
tree | ca55edc68c14d45fa6074f313da882bc9f7d11f1 /coding/zip_reader.cpp | |
parent | 31061cd31a767c19d4dc96532aaf724ce98286ef (diff) |
Added ZipReader::UncompressedSize(). Compressed size is returned by base method Reader::Size()
Diffstat (limited to 'coding/zip_reader.cpp')
-rw-r--r-- | coding/zip_reader.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/coding/zip_reader.cpp b/coding/zip_reader.cpp index 163e6aea65..68530bdeba 100644 --- a/coding/zip_reader.cpp +++ b/coding/zip_reader.cpp @@ -10,7 +10,7 @@ #include "../3party/zlib/contrib/minizip/unzip.h" ZipFileReader::ZipFileReader(string const & container, string const & file) - : BaseZipFileReaderType(container) + : BaseZipFileReaderType(container), m_uncompressedFileSize(0) { unzFile zip = unzOpen64(container.c_str()); if (!zip) @@ -32,14 +32,10 @@ ZipFileReader::ZipFileReader(string const & container, string const & file) unz_file_info64 fileInfo; if (UNZ_OK != unzGetCurrentFileInfo64(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0)) - MYTHROW(LocateZipException, ("Can't get uncompressed file size inside zip", file)); + MYTHROW(LocateZipException, ("Can't get compressed file size inside zip", file)); - if (fileInfo.compressed_size != fileInfo.uncompressed_size) - MYTHROW(InvalidZipException, ("File should be uncompressed inside zip", file)); - - LOG(LDEBUG, (file, "offset:", offset, "size:", fileInfo.uncompressed_size)); - - SetOffsetAndSize(offset, fileInfo.uncompressed_size); + SetOffsetAndSize(offset, fileInfo.compressed_size); + m_uncompressedFileSize = fileInfo.uncompressed_size; } vector<string> ZipFileReader::FilesList(string const & zipContainer) |