3 namespace SharpCompress.Common.Zip.Headers
5 internal enum ExtraDataType : ushort
10 internal class ExtraData
12 internal ExtraDataType Type { get; set; }
13 internal ushort Length { get; set; }
14 internal byte[] DataBytes { get; set; }
17 internal class LocalEntryHeader : ZipFileEntry
19 public LocalEntryHeader()
20 : base(ZipHeaderType.LocalEntry)
24 internal override void Read(BinaryReader reader)
26 Version = reader.ReadUInt16();
27 Flags = (HeaderFlags) reader.ReadUInt16();
28 CompressionMethod = (ZipCompressionMethod) reader.ReadUInt16();
29 LastModifiedTime = reader.ReadUInt16();
30 LastModifiedDate = reader.ReadUInt16();
31 Crc = reader.ReadUInt32();
32 CompressedSize = reader.ReadUInt32();
33 UncompressedSize = reader.ReadUInt32();
34 ushort nameLength = reader.ReadUInt16();
35 ushort extraLength = reader.ReadUInt16();
36 byte[] name = reader.ReadBytes(nameLength);
37 byte[] extra = reader.ReadBytes(extraLength);
38 Name = DecodeString(name);
42 internal override void Write(BinaryWriter writer)
44 writer.Write(Version);
45 writer.Write((ushort) Flags);
46 writer.Write((ushort) CompressionMethod);
47 writer.Write(LastModifiedTime);
48 writer.Write(LastModifiedDate);
50 writer.Write(CompressedSize);
51 writer.Write(UncompressedSize);
53 byte[] nameBytes = EncodeString(Name);
55 writer.Write((ushort) nameBytes.Length);
56 writer.Write((ushort) 0);
59 // writer.Write(Extra);
61 writer.Write(nameBytes);
64 internal ushort Version { get; private set; }