|
|
|
|
|
| |
|
Zip8 file format
The ZIP file format was originally created in 1989 by Phil Katz, founder of PKWARE.
Some history about the zip file format and Phil Katz
The original zip file format specification by Phil Katz
This is a proposal for a simple extension to the standard PKZIP 2.04g format.
This proposal addresses the main limitations of the popular zip file format:
4GB maximum file size and 65535 maximum number of files.
Zip8 files use the file extension ".zip8". Zip8 format is applied
automatically during the compression operations
if any of the following conditions is met:
- any of the files inside the archive or the zip file itself has size larger then 2GB
- the number of archived files is greater than 65535
Zip8 format is currently supported by "BigSpeed Zipper" utility (for end users)
and "BigSpeed Zip OCX" library (for software developers).
The following table shows the specification of Zip8 format compared to the original PKZIP 2.04g format.
Overall zip file format:
Files are stored in arbitrary order. Large zip files can span multiple diskette media.
[local file header + file data]
[local file header + file data]
. . .
[central directory file header]
[central directory file header]
. . .
[end of central directory record]
Local file header:
| Field |
PKZIP 2.04g |
Zip8 |
|
| local file header signature |
4 bytes (0x04034b50) |
4 bytes (0x84834b50) |
| version needed to extract |
2 bytes |
2 bytes |
| general purpose bit flag |
2 bytes |
2 bytes |
| general purpose bit flag |
2 bytes |
2 bytes |
| compression method |
2 bytes |
2 bytes |
| last mod file time |
2 bytes |
2 bytes |
| last mod file date |
2 bytes |
2 bytes |
| compressed size |
4 bytes |
8 bytes |
| uncompressed size |
4 bytes |
8 bytes |
| filename length |
2 bytes |
2 bytes |
| extra field length |
2 bytes |
2 bytes |
| file name |
variable size |
variable size |
| extra field |
variable size |
variable size |
Central directory file header:
| Field |
PKZIP 2.04g |
Zip8 |
|
| central file header signature |
4 bytes (0x02014b50) |
4 bytes (0x82814b50) |
| version made by |
2 bytes |
2 bytes |
| version needed to extract |
2 bytes |
2 bytes |
| general purpose bit flag |
2 bytes |
2 bytes |
| compression method |
2 bytes |
2 bytes |
| last mod file time |
2 bytes |
2 bytes |
| last mod file date |
2 bytes |
2 bytes |
| crc-32 |
2 bytes |
2 bytes |
| compressed size |
4 bytes |
8 bytes |
| uncompressed size |
4 bytes |
8 bytes |
| filename length |
2 bytes |
2 bytes |
| extra field length |
2 bytes |
2 bytes |
| file comment length |
2 bytes |
2 bytes |
| disk number start |
2 bytes |
2 bytes |
| internal file attributes |
2 bytes |
2 bytes |
| external file attributes |
2 bytes |
2 bytes |
| relative offset of local header |
4 bytes |
8 bytes |
| file name |
variable size |
variable size |
| extra field |
variable size |
variable size |
| file comment |
variable size |
variable size |
End of central directory record:
| Field |
PKZIP 2.04g |
Zip8 |
|
| end of central dir signature |
4 bytes (0x06054b50) |
4 bytes (0x86854b50) |
| number of this disk |
2 bytes |
2 bytes |
| number of the disk with the start of the central directory |
2 bytes |
2 bytes |
| total number of entries in the central dir on this disk |
2 bytes |
4 bytes |
| total number of entries in the central dir |
2 bytes |
4 bytes |
| size of the central directory |
4 bytes |
4 bytes |
| offset of start of central directory with respect to the starting disk number |
4 bytes |
8 bytes |
| zip file comment length |
2 bytes |
2 bytes |
| zip file comment |
(variable size) |
(variable size) |
|
|
| |
|
|