LSLib.LS.PackagedFileInfo.MakeReader C# (CSharp) Méthode

MakeReader() public méthode

public MakeReader ( ) : BinaryReader
Résultat System.IO.BinaryReader
        public override BinaryReader MakeReader()
        {
            var compressed = new byte[SizeOnDisk];

            this.PackageStream.Seek(OffsetInFile, SeekOrigin.Begin);
            int readSize = this.PackageStream.Read(compressed, 0, (int)SizeOnDisk);
            if (readSize != SizeOnDisk)
            {
                var msg = String.Format("Failed to read {0} bytes from archive (only got {1})", SizeOnDisk, readSize);
                throw new InvalidDataException(msg);
            }

            if (Crc != 0)
            {
                var computedCrc = Crc32.Compute(compressed);
                if (computedCrc != Crc)
                {
                    var msg = String.Format(
                        "CRC check failed on file '{0}', archive is possibly corrupted. Expected {1,8:X}, got {2,8:X}",
                        Name, Crc, computedCrc
                    );
                    throw new InvalidDataException(msg);
                }
            }

            var uncompressed = BinUtils.Decompress(compressed, (int)Size(), (byte)Flags);
            var memStream = new MemoryStream(uncompressed);
            var reader = new BinaryReader(memStream);
            return reader;
        }