Skip to content

Appendix A: Property IDs

This appendix provides a complete reference of all property IDs used in 7z archive headers.

Property ID Table

IDHexNameContextDescription
00x00EndAllEnd of section marker
10x01HeaderTop-levelMain header marker
20x02ArchivePropertiesHeaderArchive-wide properties
30x03AdditionalStreamsInfoHeaderAdditional data streams
40x04MainStreamsInfoHeaderPrimary stream information
50x05FilesInfoHeaderFile metadata section
60x06PackInfoStreamsInfoPack stream information
70x07UnpackInfoStreamsInfoUnpack/folder information
80x08SubStreamsInfoStreamsInfoPer-file stream information
90x09SizeVariousSize array marker
100x0ACRCVariousCRC/digest marker
110x0BFolderUnpackInfoFolder definition marker
120x0CCodersUnpackSizeUnpackInfoCoder output sizes
130x0DNumUnpackStreamSubStreamsInfoStreams per folder
140x0EEmptyStreamFilesInfoEmpty stream bitmap
150x0FEmptyFileFilesInfoEmpty file bitmap
160x10AntiFilesInfoAnti-item bitmap
170x11NameFilesInfoFile names
180x12CTimeFilesInfoCreation time
190x13ATimeFilesInfoAccess time
200x14MTimeFilesInfoModification time
210x15AttributesFilesInfoWindows attributes
220x16CommentFilesInfoArchive comment
230x17EncodedHeaderTop-levelEncoded header marker
240x18StartPosRareStart position
250x19DummyFilesInfoPadding/alignment

Property Contexts

Top-Level Context

Properties that can appear at the start of header data:

IDProperty
0x01Header (plain header)
0x17EncodedHeader (compressed header)

Header Context

Properties within a Header (0x01) section:

IDPropertyRequired
0x02ArchivePropertiesOptional
0x04MainStreamsInfoOptional
0x05FilesInfoOptional
0x00EndRequired

StreamsInfo Context

Properties within MainStreamsInfo (0x04):

IDPropertyRequired
0x06PackInfoOptional
0x07UnpackInfoOptional
0x08SubStreamsInfoOptional
0x00EndRequired

PackInfo Context

Properties within PackInfo (0x06):

IDPropertyRequired
0x09SizeIf NumPackStreams > 0
0x0ACRCOptional
0x00EndRequired

UnpackInfo Context

Properties within UnpackInfo (0x07):

IDPropertyRequired
0x0BFolderRequired
0x0CCodersUnpackSizeRequired
0x0ACRCOptional
0x00EndRequired

SubStreamsInfo Context

Properties within SubStreamsInfo (0x08):

IDPropertyRequired
0x0DNumUnpackStreamOptional
0x09SizeIf multiple substreams
0x0ACRCOptional
0x00EndRequired

FilesInfo Context

Properties within FilesInfo (0x05):

IDPropertyRequiredOrder
0x0EEmptyStreamOptional1
0x0FEmptyFileOptional2
0x10AntiOptional3
0x11NameRecommended4
0x12CTimeOptional5
0x13ATimeOptional6
0x14MTimeOptional7
0x15AttributesOptional8
0x16CommentOptional9
0x19DummyOptional10
0x00EndRequiredLast

Property Structures

End (0x00)

No data. Marks end of containing section.

Header (0x01)

Header ::= 0x01 [ArchiveProperties] [MainStreamsInfo] [FilesInfo] 0x00

ArchiveProperties (0x02)

ArchiveProperties ::= 0x02 Property* 0x00
Property ::= PropertyID Size Data

Rarely used. Contains archive-level settings.

AdditionalStreamsInfo (0x03)

Status: Deprecated. This property is rarely used in practice and implementations SHOULD NOT generate archives using it. Implementations MUST support reading archives that contain this property for backward compatibility.

AdditionalStreamsInfo ::= 0x03 StreamsInfo

Contains auxiliary streams for external data storage. This was originally intended for storing encrypted file names or other metadata separately from the main data streams. In modern archives, external data references (via External == 0x01 in various properties) typically point to streams defined within AdditionalStreamsInfo.

MainStreamsInfo (0x04)

MainStreamsInfo ::= 0x04 [PackInfo] [UnpackInfo] [SubStreamsInfo] 0x00

FilesInfo (0x05)

FilesInfo ::= 0x05 NumFiles Property* 0x00

PackInfo (0x06)

PackInfo ::= 0x06 PackPos NumPackStreams [Sizes] [Digests] 0x00

UnpackInfo (0x07)

UnpackInfo ::= 0x07 Folders [CodersUnpackSize] [Digests] 0x00

SubStreamsInfo (0x08)

SubStreamsInfo ::= 0x08 [NumUnpackStream] [Sizes] [Digests] 0x00

Size (0x09)

Sizes ::= 0x09 NUMBER* 0x00

Array of size values (context-dependent count).

CRC (0x0A)

Digests ::= 0x0A AllAreDefined [BitField] CRC*

Array of CRC-32 checksums.

Folder (0x0B)

Folders ::= 0x0B NumFolders External FolderData

CodersUnpackSize (0x0C)

CodersUnpackSize ::= 0x0C NUMBER*

Unpack sizes for all coder outputs across all folders.

NumUnpackStream (0x0D)

NumUnpackStream ::= 0x0D NUMBER[NumFolders]

Number of files per folder. Note: This section has no End marker; the count of NUMBER values equals NumFolders from UnpackInfo. See 08-SUBSTREAMS-INFO for details.

EmptyStream (0x0E)

EmptyStream ::= 0x0E Size BitField

Bitmap: 1 = entry has no data stream.

EmptyFile (0x0F)

EmptyFile ::= 0x0F Size BitField

Bitmap for empty streams: 1 = file, 0 = directory.

Anti (0x10)

Anti ::= 0x10 Size BitField

Bitmap for empty streams: 1 = anti-item (deletion marker).

Name (0x11)

Name ::= 0x11 Size External [DataIndex | UTF16Names]

File names in UTF-16-LE, null-terminated.

CTime (0x12)

CTime ::= 0x12 Size AllAreDefined [BitField] External [DataIndex | Times]

Creation timestamps (FILETIME).

ATime (0x13)

ATime ::= 0x13 Size AllAreDefined [BitField] External [DataIndex | Times]

Access timestamps (FILETIME).

MTime (0x14)

MTime ::= 0x14 Size AllAreDefined [BitField] External [DataIndex | Times]

Modification timestamps (FILETIME).

Attributes (0x15)

Attributes ::= 0x15 Size AllAreDefined [BitField] External [DataIndex | Attrs]

Windows/Unix file attributes (UINT32).

Comment (0x16)

Comment ::= 0x16 Size External [DataIndex | UTF16Text]

Archive comment in UTF-16-LE.

EncodedHeader (0x17)

EncodedHeader ::= 0x17 PackInfo UnpackInfo 0x00

Indicates header is compressed/encrypted.

StartPos (0x18)

Status: Deprecated. This property is rarely used in practice and implementations SHOULD NOT generate archives using it. Implementations SHOULD ignore this property when reading.

StartPos ::= 0x18 Size Data

Originally intended for storing file start positions within streams. This property is not used by modern versions of 7-Zip and has no defined semantics. Archives containing this property are extremely rare.

Dummy (0x19)

Dummy ::= 0x19 Size Zeros

Padding bytes (all zeros). Used for alignment.

Unknown Properties

Properties with unknown IDs SHOULD be skipped:

function skip_unknown_property(stream, property_id):
    size = stream.read_number()
    stream.skip(size)
    log_warning("Unknown property ID: 0x{:02X}", property_id)

This enables forward compatibility with future format extensions.

See Also

Released under MIT OR Apache-2.0 License