internal static void WriteHeader(ArchiveHeader header, BinaryWriter w) { w.Write(header.Signature); w.Write(header.Version); w.Write(header.HeaderSize); w.Write(header.Unknown); w.Write(header.IndexOffset); w.Write(header.IndexLength); }
public void Reload() { CloseAllFiles(); Files.Clear(); var reader = new BinaryReader(Stream); Stream.Seek(0); lock (_syncRoot) { Header = ArchiveHelpers.ReadHeader(reader); Files = ArchiveHelpers.ReadIndex(this, reader); } }
internal static ArchiveHeader ReadHeader(BinaryReader r) { var header = new ArchiveHeader { Signature = r.ReadBytes(6), Version = r.ReadUInt16(), HeaderSize = r.ReadUInt32(), Unknown = r.ReadUInt32(), IndexOffset = r.ReadUInt32(), IndexLength = r.ReadUInt32() }; Debug.Assert(header.Signature.Matches(Signature), $"Unexpected archive signature: {Encoding.ASCII.GetString(header.Signature)}"); Debug.Assert(header.Version == 0, $"Unsupported archive version: {header.Version}"); Debug.Assert(header.HeaderSize == HeaderSize, $"Unexpected header size field: {header.HeaderSize}"); return(header); }