Merge pull request #792 from DannyBoyk/791_Correct_EOCD_ZipWriter

ZipWriter: Write correct EOCD record when more than 65,535 files
This commit is contained in:
Adam Hathcock
2023-12-27 08:55:02 +00:00
committed by GitHub

View File

@@ -304,7 +304,10 @@ public class ZipWriter : AbstractWriter
// Write normal end of central directory record
OutputStream.Write(stackalloc byte[] { 80, 75, 5, 6, 0, 0, 0, 0 });
BinaryPrimitives.WriteUInt16LittleEndian(intBuf, (ushort)entries.Count);
BinaryPrimitives.WriteUInt16LittleEndian(
intBuf,
(ushort)(entries.Count < 0xFFFF ? entries.Count : 0xFFFF)
);
OutputStream.Write(intBuf.Slice(0, 2));
OutputStream.Write(intBuf.Slice(0, 2));
BinaryPrimitives.WriteUInt32LittleEndian(intBuf, sizevalue);