History of Changes in the ZipArchive Library
Applies To: All
4.6.0 (2013-12-15)
New Features
- Added wide char support to Linux/OS X version (normalization is currently not supported).
-
Added CZipStorage::GetSplitVolumeName.
- Added -tv switch to zippie.
- Added better errors reporting while testing in zippie.
Changes
Bugs Fixed
-
Fixed the problem when canceling AddNewFiles compression with a callback resulted in handles not released (thanks to Sarfaraz for reporting it).
- Eliminated runtime check fail with zlib library under Visual Studio (it was harmless, but the warning was nevertheless issued).
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