public bool TryReadBlock(BinaryReader reader) { byte[] buffer = new byte[4]; ZipHelper.ReadBytes(reader.BaseStream, buffer, buffer.Length); uint uint32 = BitConverter.ToUInt32(buffer, 0); if (uint32 == 134695760U) { this.ReadFields(reader); } else { this.Crc = uint32; this.ReadSize(reader); } return(true); }
private static bool SeekBackwardsAndRead(Stream stream, byte[] buffer, out int bufferPointer) { if (stream.Position < (long)buffer.Length) { int position = (int)stream.Position; stream.Seek(0L, SeekOrigin.Begin); ZipHelper.ReadBytes(stream, buffer, position); stream.Seek(0L, SeekOrigin.Begin); bufferPointer = position - 1; return(true); } stream.Seek((long)-buffer.Length, SeekOrigin.Current); ZipHelper.ReadBytes(stream, buffer, buffer.Length); stream.Seek((long)-buffer.Length, SeekOrigin.Current); bufferPointer = buffer.Length - 1; return(false); }