public void WriteHeader(ArchiveHeader header)
 {
     var binaryWriter = new BinaryWriter(_stream);
     for (long i = 0; i < header.ChunkCount; i++)
     {
         binaryWriter.Write(header.ChunkLengths[i]);
     }
     binaryWriter.Write(header.ChunkCount);
 }
 public ArchiveHeader ReadHeader()
 {
     var binaryReader = new BinaryReader(_stream);
     var chunkCount = binaryReader.ReadInt64();
     var header = new ArchiveHeader(chunkCount);
     for (long i = 0; i < header.ChunkCount; i++)
     {
         header.ChunkLengths[i] = binaryReader.ReadInt32();
     }
     return header;
 }
        public ArchiveHeader ReadHeader()
        {
            var binaryReader = new BinaryReader(_stream);

            _stream.Seek(-8, SeekOrigin.Current);
            var chunkCount = binaryReader.ReadInt64();
            _stream.Seek(-8, SeekOrigin.Current);

            var header = new ArchiveHeader(chunkCount);
            for (long i = 0; i < chunkCount; i++)
            {
                _stream.Seek(-4, SeekOrigin.Current);
                header.ChunkLengths[chunkCount - i - 1] = binaryReader.ReadInt32();
                _stream.Seek(-4, SeekOrigin.Current);
            }

            return header;
        }