History of Changes in the ZipArchive Library
Applies To: All
4.5.0 (2013-02-25)
New Features
Changes
Bugs Fixed
- Fixed "Smaller Type Check" error under Visual Studio (thanks to Nigel Delaforce).
- Fixed compilation errors under XCode 4.4.
- Fixed compilation errors under gcc 4.7.
- Fixed -af zippie switch (thanks to Ciro Ettorre).
4.1.2 (2012-03-03)
Changes
-
Zlib library updated to 1.2.6
Bugs Fixed
-
An archive was corrupted if replacing a file in the archive with a file that is locked by another process.
- Fixed the situation where removing all files in an archive with self-extract stub resulted in overwriting the stub.
- Recovery from extracting a split archive with missing parts was not possible without a callback.
- Zippie extraction problems with split archives.
4.1.1 (2011-06-27)
New Features
Changes
-
CZipString
in the STL version no longer derives from std::basic_string<TCHAR>
, but uses the STL string as a variable. This is changed because of Visual Studio 2010 having problems with linking it (thanks to Christian Khoukaz for providing the fix).
Bugs Fixed
-
Fixed a crash caused by lack of initialization when using Recycle Bin (
ZipPlatform::dfmRecycleBin
) for files removal.
-
Fixed a crash when reading extra fields from certain corrupted archives.
-
Setting a file modification time after file extraction under Windows could fail when it was locked by a file system notification hook (thanks to Dengg Helmut).
-
When CZipArchive is throwing an exception related to an external file (when e.g. adding a non-existing file), it includes now this external file path information in the exception instead of the zip archive path information (thanks to Miroslav Bonchev).
-
Fixed trial versions.
4.1.0 (2010-10-31)
New Features
-
Added project files for Visual Studio 2010. These are now default project files for the ZipArchive Library.
-
Added the possibility to controls overwriting of files during extraction in the
CZipArchive::ExtractFile(ZIP_INDEX_TYPE, LPCTSTR) method.
-
Added
CZipAbstractFile::HasFilePath()
method to allow properly using custom file implementations that have no physical paths. That includes using abstract files with the CZipArchive::OpenFrom() method.
-
Added the CZipArchive::GetLastIndexAdded() method.
-
Very long paths support under Windows is now automatic. There is no need to prefix paths with \\?\ when extracting.
Changes
-
Zlib library updated to 1.2.5
-
bzip2 library updated to 1.0.6
-
Leading path separators are removed from filenames stored in archives.
-
When a trailing path separator is added to a file name, this file will be added as a folder.
-
File names with trailing path separators in archive and with size 0 are always treated as folders.
-
Removed the
CZipArchive::SetExhaustiveRead
method. Use the CZipArchive::SetSpecialFlags() method instead.
-
Removed the
CZipArchive::GetExhaustiveRead
method. Use the CZipArchive::GetSpecialFlags() method instead.
-
The
CZipMemFile
class derives now from CFile
in MFC compilation (but not under Visual Studio 6.0 with _ZIP_FILE_IMPLEMENTATION set to ZIP_ZFI_WIN).
Bugs Fixed
-
Fixed attributes conversion from NTFS system to others.
-
When a hidden file was compressed under Windows it received no read permissions when extracted under Linux/OS X. Now it has read permissions for the user.
-
When using
CZipArchive::umExtra
unicode characters were not correctly preserved under some conditions.
-
When renaming a file or a directory, problems could occur when FindFast was enabled.
-
Fixed a problem when removing files in large archives using Visual Studio 6.0 (thanks to Alexandr Novy).
-
Fixed a problem with AES encryption under x64.
-
Fixed an issue when extracting archives having Zip64 EoCD locator written when not needed.
-
Fixed path separators conversion when using Unicode extra headers (thanks to Miroslav Bonchev for reporting it).
-
Fixed an issue when CZipArchive::GetFromArchive() method copied a CRC encrypted file without the data descriptor.
4.0.1 (2009-04-24)
Changes
-
Allowed using precompiled headers by correcting the stdafx.h inclusion order.
-
Projects for Visual Studio 2010/2008/2005/2003 use now a precompiled header.
Bugs Fixed
-
Fixed problem with decompressing spanned archives (thanks to Miroslav Bonchev for reporting it).
-
CZipFile::Seek()
in the STL version didn't seek on files larger than 2GB when Zip64 was disabled.
-
Opening an archive that was not a split archive, was throwing exception when closing an archive even if the
iAfterException
parameter was set to CZipArchive::afAfterException (thanks to Dragan Milic for reporting it).
-
Opening a binary split archive could throw an exception sometimes (thanks to Dragan Milic for the fix).
-
Extracting a binary split archive could throw exception with some archives (thanks to Dragan Milic for reporting it).
-
Fixed run-time check failure under Visual Studio (a cast to a smaller data type has caused a loss of data) - thanks to James Grocholl for the fix.
-
Fixed custom Unicode compilation issues in the Open Source version (thanks to Ralph Valeriote for reporting it).
4.0.0 (2009-03-24)
New Features
Changes
- The library uses now Visual Studio 2008 project files by default. Project files for other compilers are available and maintained.
-
The following compiler macros were renamed:
-
ZIP_ARCHIVE_STL renamed to _ZIP_IMPL_STL.
-
ZIP_ARCHIVE_MFC renamed to _ZIP_IMPL_MFC.
-
ZIP_ARCHIVE_WIN renamed to _ZIP_SYSTEM_WIN.
-
ZIP_ARCHIVE_LNX renamed to _ZIP_SYSTEM_LINUX.
-
_ZIP64 renamed to _ZIP_ZIP64.
-
_BZIP2 renamed to _ZIP_BZIP2.
-
ZIP_ARCHIVE_USE_LOCKING renamed to _ZIP_USE_LOCKING.
-
ZIP_ARCHIVE_BZIP2_INTERNAL renamed to _ZIP_BZIP2_INTERNAL.
-
Changed opening modes for the CZipArchive::Open(LPCTSTR) method. The ZIP_AUTODETECT_VOLUME_SIZE compiler macro was removed, because it was no longer necessary.
-
Allowed direct modifications of CZipFileHeader instead of calling methods of the CZipArchive class.
-
The CZipCompressor::methodStore flag allowed in the CZipArchive::SetCompressionMethod() method.
-
CZipArchive::GetSegmMode()
removed. Use appropriate methods of the CZipStorage class (accessible through the CZipArchive::GetStorage() method).
-
Changed endianess detection. ZIP_ARCHIVE_LITTLE_ENDIAN was removed. Define _ZIP_BIG_ENDIAN to compile for big endinan. See Compilation of the ZipArchive Library and Integration with Applications for more information.
-
CZipArchive::Close() returns the name of the last volume in the archive. It is useful when handling split archives (to open a split archive, it is required to open the last volume).
-
The following methods and fields were renamed:
-
Exception CZipException::fileError is now thrown when attributes could not be read from a file (in various places).
-
CZipArchive::PredictMaximumFileSizeInArchive() uses now
CZipFileHeader::m_uComprSize instead of CZipFileHeader::m_uLocalComprSize.
-
ZipCompatibility::zcNtfs value changed to
11
to be consistent with other software (thanks to Ken Daraseng for reporting it).
-
CZipFile::OpenModes
made compatible with CFile
modes.
-
CZipFileHeader::m_uVersionMadeBy contains now only a "made by " version without the compatibility information.
-
When using CZipArchive::SetGlobalComment(), a file inside of archive cannot be opened for compression or extraction.
-
To use custom Unicode support in the ZipArchive Library, you need to define now _ZIP_UNICODE_CUSTOM (see Unicode Support: Using Non-English Characters in Filenames, Comments and Passwords for more information).
-
When using custom Unicode, CZipStringStoreSettings::m_uCommentCodePage is only used to set a file comment page, not global comment code page. Use the CZipArchive::SetGlobalComment() method instead.
- During modifications, the ZipArchive Library now checks, if the archive can be modified.
-
The CZipActionCallback::cbModify does not provide an archive name in the CZipActionCallback::Init() method, because multiple files can be renamed now at once.
-
Removed support for MSDN integration in Visual Studio 6.0.
-
Bzip2 library updated to 1.0.5 version.
Previous History
To see the history of previous versions, please visit
Archived History of Changes in the ZipArchive Library