Skip to main content
ZIP is one of the most widely used archive formats, offering broad compatibility across all operating systems and applications.

Format Overview

The ZIP format provides:
  • Universal compatibility - Supported by virtually all platforms
  • Multiple compression methods - Deflate, BZip2, LZMA, and more
  • ZIP64 support - Files up to 16 exabytes
  • Strong encryption - AES-256 and WinZip AES
  • Split archives - Multi-volume support
  • Self-extracting - Create executable archives

Format Structure

According to source/CPP/7zip/Archive/Zip/ZipHeader.h, ZIP archives use the following structure:

Signature Constants

From source/CPP/7zip/Archive/Zip/ZipHeader.h:13-23:
All multi-byte values in ZIP format use little-endian byte order.

Compression Methods

The ZIP format supports numerous compression methods (ZipHeader.h:37-68):

Standard Methods

  • Store (0) - No compression
  • Deflate (8) - Most common, good speed/ratio balance
  • Deflate64 (9) - Enhanced Deflate
  • BZip2 (12) - Better compression than Deflate
  • LZMA (14) - Excellent compression ratio

Advanced Methods

  • XZ (95) - LZMA2-based compression
  • PPMd (98) - Context modeling compression
  • Zstd (20, 93) - Modern fast compression
  • WavPack (97) - Audio compression
  • JPEG (96) - Image compression

Encryption Methods

  • ZipCrypto - Legacy weak encryption (not recommended)
  • WzAES (99) - AES encryption with authentication
ZipCrypto encryption is cryptographically weak and should not be used for sensitive data. Always use WzAES (AES-256) encryption for security.

Usage Examples

Create Standard ZIP Archive

Uses Deflate compression by default.

Create ZIP with Maximum Compression

Parameters:
  • -tzip - ZIP format
  • -mm=Deflate - Deflate compression method
  • -mx=9 - Maximum compression level

Create ZIP with LZMA Compression

Provides better compression ratio but less compatibility.
ZIP archives with LZMA compression require 7-Zip or compatible software to extract. Standard ZIP utilities may not support this method.

Create Encrypted ZIP Archive

Parameters:
  • -mem=AES256 - Use AES-256 encryption
  • -p - Prompt for password

Create Split ZIP Archive

Creates: archive.zip, archive.z01, archive.z02, etc.

Create Self-Extracting Archive

ZIP64 Format

ZIP64 extensions allow archives to exceed original ZIP limitations: From ZipHeader.h:31-33:
7-Zip automatically uses ZIP64 format when needed. You don’t need to specify it explicitly.

Version Requirements

Different ZIP features require minimum extraction versions (ZipHeader.h:72-82):

File Attributes

Host Operating Systems

ZIP format tracks the OS where the file was created (ZipHeader.h:155-180):
  • FAT (0) - MS-DOS, Windows
  • Unix (3) - Unix, Linux, macOS
  • NTFS (11) - Windows NT
  • VFAT (14) - Windows 95/NT
  • OSX (19) - macOS

Extra Fields

ZIP supports various extra data fields (ZipHeader.h:86-102):
  • Zip64 (0x01) - ZIP64 extended information
  • NTFS (0x0A) - NTFS timestamps and attributes
  • Unix Time (0x5455) - Unix timestamp
  • Unicode Name (0x7075) - UTF-8 filename
  • WzAES (0x9901) - AES encryption parameters

File Flags

From ZipHeader.h:136-142:

Advanced Features

Preserve Unix Permissions

The -snl option stores symbolic links.

Exclude Files by Pattern

Update Existing Archive

Only adds or updates changed files.

List Archive Contents

Shows detailed information about archived files.

Test Archive Integrity

Implementation Details

The ZIP handler is implemented in:

Compression Level Comparison

Deflate Compression

Method Comparison (1 GB mixed files)

Performance varies significantly based on data type. Text files compress better than binary data or already-compressed formats.

Compatibility Notes

Universal Compatibility

For maximum compatibility across all platforms:

Windows Compatibility

Windows Explorer can open ZIP files with:
  • Store (0)
  • Deflate (8)
  • No encryption or WinZip AES

macOS/Linux Compatibility

Most Unix tools support:
  • Store, Deflate, Deflate64
  • BZip2 with proper libraries

Limitations

Be aware of these ZIP format limitations:
  • No solid compression (each file compressed independently)
  • Limited recovery information
  • Weak legacy encryption (ZipCrypto)
  • Some methods have limited tool support

Best Practices

For Sharing

Use Deflate compression with -mx=5 to -mx=7

For Security

Use AES-256 encryption: -mem=AES256 -p

For Size

Use LZMA method if recipients have 7-Zip

For Speed

Use Deflate with -mx=1 for fast compression

See Also