System.IO.Compression.ZipGenericExtraField.TryReadBlock C# (CSharp) Méthode

TryReadBlock() public static méthode

public static TryReadBlock ( BinaryReader reader, long endExtraField, ZipGenericExtraField &field ) : bool
reader BinaryReader
endExtraField long
field ZipGenericExtraField
Résultat bool
        public static bool TryReadBlock(BinaryReader reader, long endExtraField, out ZipGenericExtraField field)
        {
            field = new ZipGenericExtraField();

            //not enough bytes to read tag + size
            if (endExtraField - reader.BaseStream.Position < 4)
                return false;

            field._tag = reader.ReadUInt16();
            field._size = reader.ReadUInt16();

            //not enough bytes to read the data
            if (endExtraField - reader.BaseStream.Position < field._size)
                return false;

            field._data = reader.ReadBytes(field._size);
            return true;
        }

Usage Example

Exemple #1
0
        public static Zip64ExtraField GetJustZip64Block(Stream extraFieldStream, bool readUncompressedSize, bool readCompressedSize, bool readLocalHeaderOffset, bool readStartDiskNumber)
        {
            Zip64ExtraField      zip64ExtraField;
            ZipGenericExtraField zipGenericExtraField;
            Zip64ExtraField      zip64ExtraField1;

            using (BinaryReader binaryReader = new BinaryReader(extraFieldStream))
            {
                while (ZipGenericExtraField.TryReadBlock(binaryReader, extraFieldStream.Length, out zipGenericExtraField))
                {
                    if (!Zip64ExtraField.TryGetZip64BlockFromGenericExtraField(zipGenericExtraField, readUncompressedSize, readCompressedSize, readLocalHeaderOffset, readStartDiskNumber, out zip64ExtraField))
                    {
                        continue;
                    }
                    zip64ExtraField1 = zip64ExtraField;
                    return(zip64ExtraField1);
                }
                zip64ExtraField = new Zip64ExtraField()
                {
                    _compressedSize    = null,
                    _uncompressedSize  = null,
                    _localHeaderOffset = null,
                    _startDiskNumber   = null
                };
                return(zip64ExtraField);
            }
            return(zip64ExtraField1);
        }
All Usage Examples Of System.IO.Compression.ZipGenericExtraField::TryReadBlock