3 writes to _archive
System.IO.Compression (3)
System\IO\Compression\ZipArchiveEntry.cs (3)
64_archive = archive; 162_archive = archive; 448_archive = null!;
149 references to _archive
System.IO.Compression (149)
System\IO\Compression\ZipArchiveEntry.Async.cs (56)
120switch (_archive.Mode) 128Debug.Assert(_archive.Mode == ZipArchiveMode.Update); 154_archive.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin); 158if (!await ZipLocalFileHeader.TrySkipBlockAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false)) 163_storedOffsetOfCompressedData = _archive.ArchiveStream.Position; 180long savedPosition = _archive.ArchiveStream.Position; 184_archive.ArchiveStream.Seek(offset, SeekOrigin.Begin); 189await _archive.ArchiveStream.ReadExactlyAsync(_aesSalt, cancellationToken).ConfigureAwait(false); 200_archive.ArchiveStream.Seek(savedPosition, SeekOrigin.Begin); 261Stream compressedStream = new SubReadStream(_archive.ArchiveStream, offset, _compressedSize); 396await _archive.ArchiveStream.WriteAsync(cdStaticHeader, cancellationToken).ConfigureAwait(false); 397await _archive.ArchiveStream.WriteAsync(_storedEntryNameBytes, cancellationToken).ConfigureAwait(false); 402await zip64ExtraField.WriteBlockAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false); 409await CreateAesExtraField().WriteBlockAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false); 412await ZipGenericExtraField.WriteAllBlocksExcludingTagAsync(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream, WinZipAesExtraField.HeaderId, cancellationToken).ConfigureAwait(false); 417await ZipGenericExtraField.WriteAllBlocksAsync(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream, cancellationToken).ConfigureAwait(false); 422await _archive.ArchiveStream.WriteAsync(_fileComment, cancellationToken).ConfigureAwait(false); 435_archive.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin); 436(_lhUnknownExtraFields, _lhTrailingExtraFieldData) = await ZipLocalFileHeader.GetExtraFieldsAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false); 450_archive.ArchiveStream.Seek(await GetOffsetOfCompressedDataAsync(cancellationToken).ConfigureAwait(false), SeekOrigin.Begin); 454await _archive.ArchiveStream.ReadAtLeastAsync(_compressedBytes[i], maxSingleBufferSize, throwOnEndOfStream: true, cancellationToken).ConfigureAwait(false); 456await _archive.ArchiveStream.ReadAtLeastAsync(_compressedBytes[_compressedBytes.Length - 1], (int)(_compressedSize % maxSingleBufferSize), throwOnEndOfStream: true, cancellationToken).ConfigureAwait(false); 545Stream compressedStream = new SubReadStream(_archive.ArchiveStream, offset, _compressedSize); 562Stream compressedStream = new SubReadStream(_archive.ArchiveStream, offset, _compressedSize); 630if (!IsEncrypted && !await ZipLocalFileHeader.TrySkipBlockAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false)) 637_archive.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin); 641if (!await ZipLocalFileHeader.TrySkipBlockAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false)) 669await _archive.ArchiveStream.WriteAsync(lfStaticHeader, cancellationToken).ConfigureAwait(false); 670await _archive.ArchiveStream.WriteAsync(_storedEntryNameBytes, cancellationToken).ConfigureAwait(false); 675await zip64ExtraField.WriteBlockAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false); 682await CreateAesExtraField().WriteBlockAsync(_archive.ArchiveStream, cancellationToken).ConfigureAwait(false); 685await ZipGenericExtraField.WriteAllBlocksExcludingTagAsync(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream, WinZipAesExtraField.HeaderId, cancellationToken).ConfigureAwait(false); 689await ZipGenericExtraField.WriteAllBlocksAsync(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream, cancellationToken).ConfigureAwait(false); 727long startPosition = _archive.ArchiveStream.Position; 732baseStream: _archive.ArchiveStream, 741CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition: _archive.ArchiveStream); 753_compressedSize = _archive.ArchiveStream.Position - startPosition; 777long startPosition = _archive.ArchiveStream.Position; 786baseStream: _archive.ArchiveStream, 803CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition: _archive.ArchiveStream); 827_compressedSize = _archive.ArchiveStream.Position - startPosition; 840DirectToArchiveWriterStream entryWriter = new(GetDataCompressor(_archive.ArchiveStream, true, null, null), this); 887long currentPos = _archive.ArchiveStream.Position; 888_archive.ArchiveStream.Seek( 893await _archive.ArchiveStream.WriteAsync(flagBytes, cancellationToken).ConfigureAwait(false); 894_archive.ArchiveStream.Seek(currentPos, SeekOrigin.Begin); 911await _archive.ArchiveStream.WriteAsync(compressedBytes, cancellationToken).ConfigureAwait(false); 924if (_archive.Mode == ZipArchiveMode.Update || !_everOpenedForWrite) 935if (_endOfLocalEntryData > _archive.ArchiveStream.Position) 937_archive.ArchiveStream.Seek(_endOfLocalEntryData, SeekOrigin.Begin); 961await _archive.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, MetadataBufferLength), cancellationToken).ConfigureAwait(false); 967await _archive.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, CrcAndSizesBufferLength), cancellationToken).ConfigureAwait(false); 978await _archive.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, Zip64SizesBufferLength), cancellationToken).ConfigureAwait(false); 982_archive.ArchiveStream.Seek(finalPosition, SeekOrigin.Begin); 990await _archive.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, Zip64DataDescriptorCrcAndSizesBufferLength), cancellationToken).ConfigureAwait(false); 999return _archive.ArchiveStream.WriteAsync(dataDescriptor.AsMemory(0, bytesToWrite), cancellationToken);
System\IO\Compression\ZipArchiveEntry.cs (93)
204if (_archive.Mode == ZipArchiveMode.Create) 206_archive.AcquireArchiveStream(this); 215public ZipArchive Archive => _archive; 300_fileComment = ZipHelper.GetEncodedTruncatedBytesFromString(value, _archive.EntryNameAndCommentEncoding, ushort.MaxValue, out bool isUTF8); 327value, _archive.EntryNameAndCommentEncoding, 0 /* No truncation */, out bool isUTF8); 368if (_archive.Mode == ZipArchiveMode.Read) 372if (_archive.Mode == ZipArchiveMode.Create && _everOpenedForWrite) 430if (_archive == null) 440if (_archive.Mode != ZipArchiveMode.Update) 445_archive.ThrowIfDisposed(); 447_archive.RemoveEntry(this); 526private FileAccess InferAccessFromMode() => _archive.Mode switch 540switch (_archive.Mode) 559switch (_archive.Mode) 567Debug.Assert(_archive.Mode == ZipArchiveMode.Update); 584: _archive?.EntryNameAndCommentEncoding ?? Encoding.UTF8; 601_archive.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin); 605if (!ZipLocalFileHeader.TrySkipBlock(_archive.ArchiveStream)) 610_storedOffsetOfCompressedData = _archive.ArchiveStream.Position; 628long savedPosition = _archive.ArchiveStream.Position; 632_archive.ArchiveStream.Seek(offset, SeekOrigin.Begin); 637_archive.ArchiveStream.ReadExactly(_aesSalt); 648_archive.ArchiveStream.Seek(savedPosition, SeekOrigin.Begin); 820_archive.ArchiveStream.Seek(centralDirectoryHeaderLength, SeekOrigin.Current); 883_archive.ArchiveStream.Write(cdStaticHeader); 884_archive.ArchiveStream.Write(_storedEntryNameBytes); 887zip64ExtraField?.WriteBlock(_archive.ArchiveStream); 892CreateAesExtraField().WriteBlock(_archive.ArchiveStream); 895ZipGenericExtraField.WriteAllBlocksExcludingTag(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream, WinZipAesExtraField.HeaderId); 900ZipGenericExtraField.WriteAllBlocks(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream); 905_archive.ArchiveStream.Write(_fileComment); 920_archive.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin); 921_lhUnknownExtraFields = ZipLocalFileHeader.GetExtraFields(_archive.ArchiveStream, out _lhTrailingExtraFieldData); 951_archive.ArchiveStream.Seek(GetOffsetOfCompressedData(), SeekOrigin.Begin); 955_archive.ArchiveStream.ReadAtLeast(_compressedBytes[i], maxSingleBufferSize, throwOnEndOfStream: true); 957_archive.ArchiveStream.ReadAtLeast(_compressedBytes[_compressedBytes.Length - 1], (int)(_compressedSize % maxSingleBufferSize), throwOnEndOfStream: true); 1142Stream compressedStream = new SubReadStream(_archive.ArchiveStream, offsetOfCompressedData, _compressedSize); 1183_archive.DebugAssertIsStillArchiveStreamOwner(this); 1197Stream targetStream = _archive.ArchiveStream; 1208baseStream: _archive.ArchiveStream, 1222baseStream: _archive.ArchiveStream, 1239entry._archive.ReleaseArchiveStream(entry); 1242streamForPosition: encryptionMethod != ZipEncryptionMethod.None ? _archive.ArchiveStream : null); 1399if (!IsEncrypted && !ZipLocalFileHeader.TrySkipBlock(_archive.ArchiveStream)) 1406_archive.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin); 1410if (!ZipLocalFileHeader.TrySkipBlock(_archive.ArchiveStream)) 1447if (_diskNumberStart != _archive.NumberOfThisDisk) 1452if (_offsetOfLocalHeader > _archive.ArchiveStream.Length) 1458_archive.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin); 1469_compressedSize > _archive.ArchiveStream.Length - offsetOfCompressedData) 1561_offsetOfLocalHeader = _archive.ArchiveStream.Position; 1578bool isCreateMode = _archive.Mode == ZipArchiveMode.Create; 1596else if (isCreateMode && !_archive.ArchiveStream.CanSeek) 1632_offsetOfLocalHeader = _archive.ArchiveStream.Position; 1665_archive.ArchiveStream.Seek(ZipLocalFileHeader.SizeOfLocalHeader + _storedEntryNameBytes.Length + extraFieldLength, SeekOrigin.Current); 1674if (isEmptyFile || _archive.ArchiveStream.CanSeek) 1725_archive.ArchiveStream.Write(lfStaticHeader); 1726_archive.ArchiveStream.Write(_storedEntryNameBytes); 1729zip64ExtraField?.WriteBlock(_archive.ArchiveStream); 1734CreateAesExtraField().WriteBlock(_archive.ArchiveStream); 1737ZipGenericExtraField.WriteAllBlocksExcludingTag(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream, WinZipAesExtraField.HeaderId); 1742ZipGenericExtraField.WriteAllBlocks(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(), _archive.ArchiveStream); 1775long startPosition = _archive.ArchiveStream.Position; 1780baseStream: _archive.ArchiveStream, 1787using (CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition: _archive.ArchiveStream)) 1794_compressedSize = _archive.ArchiveStream.Position - startPosition; 1806long startPosition = _archive.ArchiveStream.Position; 1811baseStream: _archive.ArchiveStream, 1824using (CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition: _archive.ArchiveStream)) 1842_compressedSize = _archive.ArchiveStream.Position - startPosition; 1852using (DirectToArchiveWriterStream entryWriter = new(GetDataCompressor(_archive.ArchiveStream, true, null, null), this)) 1898long currentPos = _archive.ArchiveStream.Position; 1899_archive.ArchiveStream.Seek( 1904_archive.ArchiveStream.Write(flagBytes); 1905_archive.ArchiveStream.Seek(currentPos, SeekOrigin.Begin); 1922_archive.ArchiveStream.Write(compressedBytes, 0, compressedBytes.Length); 1935if (_archive.Mode == ZipArchiveMode.Update || !_everOpenedForWrite) 1946if (_endOfLocalEntryData > _archive.ArchiveStream.Position) 1948_archive.ArchiveStream.Seek(_endOfLocalEntryData, SeekOrigin.Begin); 1977_archive.ArchiveStream.Write(writeBuffer[..MetadataBufferLength]); 1983_archive.ArchiveStream.Write(writeBuffer[..CrcAndSizesBufferLength]); 1994_archive.ArchiveStream.Write(writeBuffer[..Zip64SizesBufferLength]); 1998_archive.ArchiveStream.Seek(finalPosition, SeekOrigin.Begin); 2006_archive.ArchiveStream.Write(writeBuffer[..Zip64DataDescriptorCrcAndSizesBufferLength]); 2012finalPosition = _archive.ArchiveStream.Position; 2033_archive.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.FieldLocations.VersionNeededToExtract, 2041_archive.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.FieldLocations.Crc32, 2065_archive.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.SizeOfLocalHeader 2093_archive.ArchiveStream.Write(dataDescriptor[..bytesToWrite]); 2155if (_archive == null) 2159_archive.ThrowIfDisposed(); 2391if (_entry._archive.ArchiveStream.CanSeek) 2437if (_entry._archive.ArchiveStream.CanSeek)