Fix solid 7z cache positioning after partial entry reads

This commit is contained in:
Adam Hathcock
2026-10-22 08:22:48 +01:00
parent b8e81bd3f5
commit 2c29a6bfab
7 changed files with 694 additions and 65 deletions

View File

@@ -914,6 +914,14 @@ For solid archives, prefer `ExtractAllEntries()` / `ExtractAllEntriesAsync()` to
reuse the folder decoder across entries. A reader borrowed from an archive can
be disposed without closing that archive's source.
The entries of a solid folder share one forward-only decoder. Reading only part
of an entry does not corrupt the entries that follow: the decoder skips forward
over the bytes that were not read when the next entry is opened. Read an entry
before opening the next entry of the same folder - the shared decoder cannot
serve two open entry streams of the same folder at the same time. Mixing
synchronous and asynchronous entry reads of the same folder is supported; the
decoder keeps the read mode it was first used with.
## 7z Encrypted Decoding Errors
AES-encrypted 7z codec data errors and encrypted-header CRC failures throw `SharpCompress.Common.CryptographicException`,