[PR #661] Added multipart Zip support (z01...). Added IEntry.IsSolid #1149

Open
opened 2026-01-29 22:19:12 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/adamhathcock/sharpcompress/pull/661

State: closed
Merged: Yes


Multi Volume Zip support for zip and zipx
Unit tests added for multipart archives created with WinZip and InfoZip. They are uncompressed due to the minimum part size being 65k.

The implementation is a little bit clunky. It requires the parts to be passed in in the order zip,z01 / zipx,zx01 ..., the zip is actually the last part of the archive. Once the central directory has been located and the archive is being opened the zip is switched to the end of the volumes for processing. Is seems more logical the user would select the zip/zipx not the z01/zx01. Feel free to reimplement this as your knowledge of zip is better than mine ;-)

IEntry.IsSolid for rar and 7zip
It's useful to know which files in an archive can be seeked and extracted. The Rar format sets the first file to solid=false and subsequent files in a solid set to solid=true. This allows solid-false files to be opened with seek. The 7zip implementation follows this behaviour. IsSolid already existed for Rar Entries, but it was never populated when using Archive.Open.

Cheers ;-)

**Original Pull Request:** https://github.com/adamhathcock/sharpcompress/pull/661 **State:** closed **Merged:** Yes --- **Multi Volume Zip support for zip and zipx** Unit tests added for multipart archives created with WinZip and InfoZip. They are uncompressed due to the minimum part size being 65k. The implementation is a little bit clunky. It requires the parts to be passed in in the order zip,z01 / zipx,zx01 ..., the zip is actually the last part of the archive. Once the central directory has been located and the archive is being opened the zip is switched to the end of the volumes for processing. Is seems more logical the user would select the zip/zipx not the z01/zx01. Feel free to reimplement this as your knowledge of zip is better than mine ;-) **IEntry.IsSolid for rar and 7zip** It's useful to know which files in an archive can be seeked and extracted. The Rar format sets the first file to solid=false and subsequent files in a solid set to solid=true. This allows solid-false files to be opened with seek. The 7zip implementation follows this behaviour. IsSolid already existed for Rar Entries, but it was never populated when using Archive.Open. Cheers ;-)
claunia added the pull-request label 2026-01-29 22:19:12 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/sharpcompress#1149