The Zip64 format is an extension to the standard zip format that practically removes limits in sizes and the number of files inside of a zip archive.
The ZipArchive Library automatically uses the Zip64 extensions when the regular zip archive limits are exceeded. The ZipArchive Library will not otherwise include the extensions in the archive, even if the extensions are enabled (see the paragraph below). The extensions will be removed from the archive when due to modifications they are not needed anymore. The library also automatically detects an archive in the Zip64 format.
To detect if an archive is in Zip64 format, request the central directory information with the CZipArchive::GetCentralDirInfo()
method and call the
CZipCentralDir::CInfo::IsZip64()
method.
Standard Format | Zip64 Format | |
Number of Files Inside an Archive | 65,535 | 2^64 - 1 |
Size of a File Inside an Archive [bytes] | 4,294,967,295 | 2^64 - 1 |
Size of an Archive [bytes] | 4,294,967,295 | 2^64 - 1 |
Number of Segments in a Segmented Archive |
999 (spanning) 65,535 (splitting) |
4,294,967,295 - 1 |
Central Directory Size [bytes] | 4,294,967,295 | 2^64 - 1 |
size_t
in the STL versionINT_PTR
in the MFC versionsize_t
type when sorting.
These types are usually defined as unsigned 32-bit integer types. You may need to use a 64-bit compiler for a larger collections support.
CZipArchive::sfLargeNotZip64
flag.