History of Changes in the ZipArchive Library
Applies To:
All
4.6.9 (2022-12-15)
Changes
4.6.8 (2022-06-01)
New Features
-
Added
CZipFileHeader::GetFileTitle
,
CZipFileHeader::GetFileExtension
(thanks to Andrew Truckle)
-
Added
lpszFileInZip
parameter to the
CMultiActionsInfo::MultiActionsNext
method (thanks to Andrew Truckle)
- Added support and project files for Visual Studio 2022. They are now default project files for the ZipArchive Library.
Changes
-
The Zlib library updated to version 1.2.12; see
the Zlib library change log
for more information.
-
The bzlib library updated to version 1.0.8; see
the bzlib library change log
for more information.
- Stopped support of Visual Studio versions older than 2017 as that became too troublesome to maintain on modern OSes with little benefit at the same time.
Bugs Fixed
4.6.7 (2019-04-17)
New Features
- Added support and project files for Visual Studio 2019. They are now default project files for the ZipArchive Library.
- Supporting reading of non-Zip64 archives with more than 65535 entries in the archive (thanks to Jeffrey Beckwith).
Bugs Fixed
- Various code issue fixes reported by Visual Studio Static Code Analysis "Microsoft Native Recommended Rules" (thanks to Andrew for reporting it)
4.6.6 (2018-07-19)
New Features
Changes
Bugs Fixed
4.6.5 (2017-11-25)
New Features
- Added support and project files for Visual Studio 2017. They are now default project files for the ZipArchive Library.
Changes
- Eliminated Visual Studio Code Analysis warnings (thanks to Andrew for reporting it).
4.6.4 (2017-01-23)
New Features
- Added x64 configurations to Visual Studio projects starting from Visual Studio 2005 projects up for ZipArchive and from Visual Studio 2010 for sample applications (thanks to Niels Dekker and Christoph Thien).
Changes
Bugs Fixed
- Corrected compilation under MFC x64 (thanks to all that reported it).
4.6.3 (2017-01-05)
New Features
Changes
-
Replaced the call to
GetTempFileName
with
_mktemp_s
for more security (thanks to Joel Iwashige for the suggestion).
-
Replaced
UINT
with
size_t
in
CZipMemFile
for full 64-bit support (thanks to Axel Lehnert for poining this out).
-
The Zlib library updated to version 1.2.10; see
the Zlib library change log
for more information.
4.6.2 (2015-09-12)
New Features
- Added project files for Visual Studio 2015. These are now default project files for the ZipArchive Library.
Changes
-
Under Windows the
ZipPlatform::GetFileTimes
method can now read file times when there are no permissions for listing files, but there are permissions for reading a file (thanks to Alexander).
Bugs Fixed
- In certain archives directories were not properly detected under Linux/OS X version.
- A workaround for invalid archives not adhering to Zip64 specifications.
-
Options dialog was not working in ZipArc when
_ZIP_BZIP2
was not defined.
-
Under Windows the
ZipPlatform::GetFileTimes
method was not retrieving the Last Access Time (it was retrieving Last Write Time instead).
- Fixed creation of the local header when Zip64 extensions are used to adhere to the specifications.
- Added a workaround during archive creation for a Windows Compressed Folders problem that cannot read the Zip64 information under certain circumstances (thanks to Alexander for reporting this).
- Avoided creation empty folders during extraction under certain situations (thanks to Alexander).
- Some code cleanup.
4.6.1 (2014-07-26)
New Features
- Added project files for Visual Studio 2013. These are now default project files for the ZipArchive Library.
Bugs Fixed
- Better detection of folders in some invalid archives.
-
Fixed performance problems related to
CZipString
processing (thanks to Alfred Poon for the fix).
- Fixed an issue when sorting of headers with invalid offsets could result in memory access violation (thanks to Alfred Poon for the fix).
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