protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { writeStream.Dispose(); entry.Crc = (uint)crc.Crc32Result; entry.Compressed = counting.Count; entry.Decompressed = decompressed; if (originalStream.CanSeek) { originalStream.Position = entry.HeaderOffset + 6; originalStream.WriteByte(0); originalStream.Position = entry.HeaderOffset + 14; writer.WriteFooter(entry.Crc, counting.Count, decompressed); originalStream.Position = writer.streamPosition + entry.Compressed; writer.streamPosition += entry.Compressed; } else { originalStream.Write(BitConverter.GetBytes(ZipHeaderFactory.POST_DATA_DESCRIPTOR), 0, 4); writer.WriteFooter(entry.Crc, counting.Count, decompressed); writer.streamPosition += entry.Compressed + 16; } writer.entries.Add(entry); } }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { writeStream.Dispose(); entry.Crc = (uint)crc.Crc32Result; entry.Compressed += counting.Count; entry.Decompressed = decompressed; if (writer.OutputStream.CanSeek) { writer.OutputStream.Position = entry.HeaderOffset + 14; writer.WriteFooter(entry.Crc, entry.Compressed, decompressed); writer.OutputStream.Position = writer.streamPosition + entry.Compressed; writer.streamPosition += entry.Compressed; } else { writer.OutputStream.Write(DataConverter.LittleEndian.GetBytes(ZipHeaderFactory.POST_DATA_DESCRIPTOR), 0, 4); writer.WriteFooter(entry.Crc, entry.Compressed, decompressed); writer.streamPosition += entry.Compressed + 16; } writer.entries.Add(entry); } }