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