3 writes to _archive
System.IO.Compression (3)
System\IO\Compression\ZipArchiveEntry.cs (3)
64
_archive
= archive;
166
_archive
= archive;
452
_archive
= null!;
156 references to _archive
System.IO.Compression (156)
System\IO\Compression\ZipArchiveEntry.Async.cs (57)
120
switch (
_archive
.Mode)
128
Debug.Assert(
_archive
.Mode == ZipArchiveMode.Update);
159
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
163
if (!await ZipLocalFileHeader.TrySkipBlockAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false))
168
_storedOffsetOfCompressedData =
_archive
.ArchiveStream.Position;
189
if (_offsetOfLocalHeader >
_archive
.ArchiveStream.Length)
194
long savedPosition =
_archive
.ArchiveStream.Position;
198
_archive
.ArchiveStream.Seek(offset, SeekOrigin.Begin);
203
await
_archive
.ArchiveStream.ReadExactlyAsync(_aesSalt, cancellationToken).ConfigureAwait(false);
214
_archive
.ArchiveStream.Seek(savedPosition, SeekOrigin.Begin);
275
Stream compressedStream = new SubReadStream(
_archive
.ArchiveStream, offset, _compressedSize);
426
await
_archive
.ArchiveStream.WriteAsync(cdStaticHeader, cancellationToken).ConfigureAwait(false);
427
await
_archive
.ArchiveStream.WriteAsync(_storedEntryNameBytes, cancellationToken).ConfigureAwait(false);
432
await zip64ExtraField.WriteBlockAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false);
439
await CreateAesExtraField().WriteBlockAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false);
442
await ZipGenericExtraField.WriteAllBlocksExcludingTagAsync(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, WinZipAesExtraField.HeaderId, cancellationToken).ConfigureAwait(false);
447
await ZipGenericExtraField.WriteAllBlocksAsync(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false);
452
await
_archive
.ArchiveStream.WriteAsync(_fileComment, cancellationToken).ConfigureAwait(false);
465
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
466
(_lhUnknownExtraFields, _lhTrailingExtraFieldData) = await ZipLocalFileHeader.GetExtraFieldsAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false);
480
_archive
.ArchiveStream.Seek(await GetOffsetOfCompressedDataAsync(cancellationToken).ConfigureAwait(false), SeekOrigin.Begin);
484
await
_archive
.ArchiveStream.ReadAtLeastAsync(_compressedBytes[i], maxSingleBufferSize, throwOnEndOfStream: true, cancellationToken).ConfigureAwait(false);
486
await
_archive
.ArchiveStream.ReadAtLeastAsync(_compressedBytes[_compressedBytes.Length - 1], (int)(_compressedSize % maxSingleBufferSize), throwOnEndOfStream: true, cancellationToken).ConfigureAwait(false);
575
Stream compressedStream = new SubReadStream(
_archive
.ArchiveStream, offset, _compressedSize);
592
Stream compressedStream = new SubReadStream(
_archive
.ArchiveStream, offset, _compressedSize);
660
if (!IsEncrypted && !await ZipLocalFileHeader.TrySkipBlockAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false))
667
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
671
if (!await ZipLocalFileHeader.TrySkipBlockAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false))
699
await
_archive
.ArchiveStream.WriteAsync(lfStaticHeader, cancellationToken).ConfigureAwait(false);
700
await
_archive
.ArchiveStream.WriteAsync(_storedEntryNameBytes, cancellationToken).ConfigureAwait(false);
705
await zip64ExtraField.WriteBlockAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false);
712
await CreateAesExtraField().WriteBlockAsync(
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false);
715
await ZipGenericExtraField.WriteAllBlocksExcludingTagAsync(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, WinZipAesExtraField.HeaderId, cancellationToken).ConfigureAwait(false);
719
await ZipGenericExtraField.WriteAllBlocksAsync(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, cancellationToken).ConfigureAwait(false);
757
long startPosition =
_archive
.ArchiveStream.Position;
762
baseStream:
_archive
.ArchiveStream,
771
CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition:
_archive
.ArchiveStream);
783
_compressedSize =
_archive
.ArchiveStream.Position - startPosition;
807
long startPosition =
_archive
.ArchiveStream.Position;
816
baseStream:
_archive
.ArchiveStream,
833
CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition:
_archive
.ArchiveStream);
857
_compressedSize =
_archive
.ArchiveStream.Position - startPosition;
870
DirectToArchiveWriterStream entryWriter = new(GetDataCompressor(
_archive
.ArchiveStream, true, null, null), this);
918
long currentPos =
_archive
.ArchiveStream.Position;
919
_archive
.ArchiveStream.Seek(
924
await
_archive
.ArchiveStream.WriteAsync(flagBytes, cancellationToken).ConfigureAwait(false);
925
_archive
.ArchiveStream.Seek(currentPos, SeekOrigin.Begin);
942
await
_archive
.ArchiveStream.WriteAsync(compressedBytes, cancellationToken).ConfigureAwait(false);
955
if (
_archive
.Mode == ZipArchiveMode.Update || !_everOpenedForWrite)
966
if (_endOfLocalEntryData >
_archive
.ArchiveStream.Position)
968
_archive
.ArchiveStream.Seek(_endOfLocalEntryData, SeekOrigin.Begin);
992
await
_archive
.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, MetadataBufferLength), cancellationToken).ConfigureAwait(false);
998
await
_archive
.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, CrcAndSizesBufferLength), cancellationToken).ConfigureAwait(false);
1009
await
_archive
.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, Zip64SizesBufferLength), cancellationToken).ConfigureAwait(false);
1013
_archive
.ArchiveStream.Seek(finalPosition, SeekOrigin.Begin);
1021
await
_archive
.ArchiveStream.WriteAsync(writeBuffer.AsMemory(0, Zip64DataDescriptorCrcAndSizesBufferLength), cancellationToken).ConfigureAwait(false);
1030
return
_archive
.ArchiveStream.WriteAsync(dataDescriptor.AsMemory(0, bytesToWrite), cancellationToken);
System\IO\Compression\ZipArchiveEntry.cs (99)
208
if (
_archive
.Mode == ZipArchiveMode.Create)
210
_archive
.AcquireArchiveStream(this);
219
public ZipArchive Archive =>
_archive
;
304
_fileComment = ZipHelper.GetEncodedTruncatedBytesFromString(value,
_archive
.EntryNameAndCommentEncoding, ushort.MaxValue, out bool isUTF8);
331
value,
_archive
.EntryNameAndCommentEncoding, 0 /* No truncation */, out bool isUTF8);
372
if (
_archive
.Mode == ZipArchiveMode.Read)
376
if (
_archive
.Mode == ZipArchiveMode.Create && _everOpenedForWrite)
434
if (
_archive
== null)
444
if (
_archive
.Mode != ZipArchiveMode.Update)
449
_archive
.ThrowIfDisposed();
451
_archive
.RemoveEntry(this);
530
private FileAccess InferAccessFromMode() =>
_archive
.Mode switch
544
switch (
_archive
.Mode)
563
switch (
_archive
.Mode)
571
Debug.Assert(
_archive
.Mode == ZipArchiveMode.Update);
593
:
_archive
?.EntryNameAndCommentEncoding ?? Encoding.UTF8;
610
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
614
if (!ZipLocalFileHeader.TrySkipBlock(
_archive
.ArchiveStream))
619
_storedOffsetOfCompressedData =
_archive
.ArchiveStream.Position;
641
if (_offsetOfLocalHeader >
_archive
.ArchiveStream.Length)
646
long savedPosition =
_archive
.ArchiveStream.Position;
650
_archive
.ArchiveStream.Seek(offset, SeekOrigin.Begin);
655
_archive
.ArchiveStream.ReadExactly(_aesSalt);
666
_archive
.ArchiveStream.Seek(savedPosition, SeekOrigin.Begin);
838
_archive
.ArchiveStream.Seek(centralDirectoryHeaderLength, SeekOrigin.Current);
901
_archive
.ArchiveStream.Write(cdStaticHeader);
902
_archive
.ArchiveStream.Write(_storedEntryNameBytes);
905
zip64ExtraField?.WriteBlock(
_archive
.ArchiveStream);
910
CreateAesExtraField().WriteBlock(
_archive
.ArchiveStream);
913
ZipGenericExtraField.WriteAllBlocksExcludingTag(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, WinZipAesExtraField.HeaderId);
918
ZipGenericExtraField.WriteAllBlocks(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream);
923
_archive
.ArchiveStream.Write(_fileComment);
938
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
939
_lhUnknownExtraFields = ZipLocalFileHeader.GetExtraFields(
_archive
.ArchiveStream, out _lhTrailingExtraFieldData);
969
_archive
.ArchiveStream.Seek(GetOffsetOfCompressedData(), SeekOrigin.Begin);
973
_archive
.ArchiveStream.ReadAtLeast(_compressedBytes[i], maxSingleBufferSize, throwOnEndOfStream: true);
975
_archive
.ArchiveStream.ReadAtLeast(_compressedBytes[_compressedBytes.Length - 1], (int)(_compressedSize % maxSingleBufferSize), throwOnEndOfStream: true);
1160
Stream compressedStream = new SubReadStream(
_archive
.ArchiveStream, offsetOfCompressedData, _compressedSize);
1201
_archive
.DebugAssertIsStillArchiveStreamOwner(this);
1215
Stream targetStream =
_archive
.ArchiveStream;
1226
baseStream:
_archive
.ArchiveStream,
1240
baseStream:
_archive
.ArchiveStream,
1257
entry.
_archive
.ReleaseArchiveStream(entry);
1260
streamForPosition: encryptionMethod != ZipEncryptionMethod.None ?
_archive
.ArchiveStream : null);
1431
if (!IsEncrypted && !ZipLocalFileHeader.TrySkipBlock(
_archive
.ArchiveStream))
1438
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
1442
if (!ZipLocalFileHeader.TrySkipBlock(
_archive
.ArchiveStream))
1479
if (_diskNumberStart !=
_archive
.NumberOfThisDisk)
1484
if (_offsetOfLocalHeader >
_archive
.ArchiveStream.Length)
1490
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
1501
_compressedSize >
_archive
.ArchiveStream.Length - offsetOfCompressedData)
1593
_offsetOfLocalHeader =
_archive
.ArchiveStream.Position;
1610
bool isCreateMode =
_archive
.Mode == ZipArchiveMode.Create;
1625
if (!
_archive
.ArchiveStream.CanSeek)
1635
else if (isCreateMode && !
_archive
.ArchiveStream.CanSeek)
1671
_offsetOfLocalHeader =
_archive
.ArchiveStream.Position;
1704
_archive
.ArchiveStream.Seek(ZipLocalFileHeader.SizeOfLocalHeader + _storedEntryNameBytes.Length + extraFieldLength, SeekOrigin.Current);
1713
if (isEmptyFile ||
_archive
.ArchiveStream.CanSeek)
1764
_archive
.ArchiveStream.Write(lfStaticHeader);
1765
_archive
.ArchiveStream.Write(_storedEntryNameBytes);
1768
zip64ExtraField?.WriteBlock(
_archive
.ArchiveStream);
1773
CreateAesExtraField().WriteBlock(
_archive
.ArchiveStream);
1776
ZipGenericExtraField.WriteAllBlocksExcludingTag(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, WinZipAesExtraField.HeaderId);
1781
ZipGenericExtraField.WriteAllBlocks(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream);
1814
long startPosition =
_archive
.ArchiveStream.Position;
1819
baseStream:
_archive
.ArchiveStream,
1826
using (CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition:
_archive
.ArchiveStream))
1833
_compressedSize =
_archive
.ArchiveStream.Position - startPosition;
1845
long startPosition =
_archive
.ArchiveStream.Position;
1850
baseStream:
_archive
.ArchiveStream,
1863
using (CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition:
_archive
.ArchiveStream))
1881
_compressedSize =
_archive
.ArchiveStream.Position - startPosition;
1891
using (DirectToArchiveWriterStream entryWriter = new(GetDataCompressor(
_archive
.ArchiveStream, true, null, null), this))
1938
long currentPos =
_archive
.ArchiveStream.Position;
1939
_archive
.ArchiveStream.Seek(
1944
_archive
.ArchiveStream.Write(flagBytes);
1945
_archive
.ArchiveStream.Seek(currentPos, SeekOrigin.Begin);
1962
_archive
.ArchiveStream.Write(compressedBytes, 0, compressedBytes.Length);
1975
if (
_archive
.Mode == ZipArchiveMode.Update || !_everOpenedForWrite)
1986
if (_endOfLocalEntryData >
_archive
.ArchiveStream.Position)
1988
_archive
.ArchiveStream.Seek(_endOfLocalEntryData, SeekOrigin.Begin);
2017
_archive
.ArchiveStream.Write(writeBuffer[..MetadataBufferLength]);
2023
_archive
.ArchiveStream.Write(writeBuffer[..CrcAndSizesBufferLength]);
2034
_archive
.ArchiveStream.Write(writeBuffer[..Zip64SizesBufferLength]);
2038
_archive
.ArchiveStream.Seek(finalPosition, SeekOrigin.Begin);
2046
_archive
.ArchiveStream.Write(writeBuffer[..Zip64DataDescriptorCrcAndSizesBufferLength]);
2052
finalPosition =
_archive
.ArchiveStream.Position;
2073
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.FieldLocations.VersionNeededToExtract,
2081
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.FieldLocations.Crc32,
2105
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.SizeOfLocalHeader
2133
_archive
.ArchiveStream.Write(dataDescriptor[..bytesToWrite]);
2195
if (
_archive
== null)
2199
_archive
.ThrowIfDisposed();
2435
long startPosition = _entry.
_archive
.ArchiveStream.Position;
2439
_entry._compressedSize = _entry.
_archive
.ArchiveStream.Position - startPosition;
2447
if (_entry.
_archive
.ArchiveStream.CanSeek)
2494
long startPosition = _entry.
_archive
.ArchiveStream.Position;
2498
_entry._compressedSize = _entry.
_archive
.ArchiveStream.Position - startPosition;
2506
if (_entry.
_archive
.ArchiveStream.CanSeek)