Skip to content
Novus Examples
zip150 B

ZIP - Empty Archive With a Comment

A valid ZIP with zero members whose end record still carries an archive comment - the combination that catches readers which treat 'no entries' as 'not an archive' and readers which look for the end record only in the last 22 bytes. Its group siblings are the same empty case in five other container formats.

Preview — schema + first 6 rowszip
structurestringvaluestring
containerZIP
members0
end-of-central-directorypresent, 22 bytes
central directory size0 bytes
archive comment128 bytes
total file size150 bytes
This archive has no members to list; the table describes the container bytes instead.

Specifications

Seed
20260807
Members
0
File Bytes
150
Eocd Bytes
22
Archive Comment Bytes
128
Central Directory Size
0
Central Directory Offset
0

Testing contract

Expected to pass
Scenario
Open the file as a ZIP, list its members, and read back the archive comment.
Expected result
The archive opens successfully, reports 0 members and no error, and the 128-byte archive comment reads back intact.

What is a .zip file?

ZIP is a widely supported archive format that bundles multiple files and directories into one container, typically with per-file DEFLATE compression and a central directory index. It supports random access to individual entries without decompressing the whole archive. It underlies many document formats such as DOCX and EPUB.

How to use this file

Use an example ZIP to test archive extraction, central-directory parsing, per-entry decompression, and protection against path-traversal (zip-slip) during unpacking.

How to use this file for testing

“ZIP - Empty Archive With a Comment” is a deterministic Novus Examples fixture for Conversion testing, Error handling. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.

Documented properties for this file: seed 20260807. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Archive fixtures are documented down to their member list (shown on this page) and are deliberately safe — no zip bombs, executables, or hidden payloads. Test extractors against nested, unicode, empty, and encrypted variants.

Code examples

unzip -l empty-with-comment.zip     # list members
unzip empty-with-comment.zip -d out/  # extract

Generated by generation/archives_p7.py. Free for any use, no attribution required — license.