System.IO.Compression.ZipArchiveEntry.DirectToArchiveWriterStream.Dispose C# (CSharp) Method

Dispose() protected method

protected Dispose ( bool disposing ) : void
disposing bool
return void
            protected override void Dispose(bool disposing)
            {
                if (disposing && !_isDisposed)
                {
                    _crcSizeStream.Dispose(); //now we have size/crc info

                    if (!_everWritten)
                    {
                        //write local header, no data, so we use stored
                        _entry.WriteLocalFileHeader(true);
                    }
                    else
                    {
                        //go back and finish writing
                        if (_entry._archive.ArchiveStream.CanSeek)
                            //finish writing local header if we have seek capabilities

                            _entry.WriteCrcAndSizesInLocalHeader(_usedZip64inLH);
                        else
                            //write out data descriptor if we don't have seek capabilities
                            _entry.WriteDataDescriptor();
                    }
                    _canWrite = false;
                    _isDisposed = true;
                }

                base.Dispose(disposing);
            }
            #endregion