3 writes to _archive
System.IO.Compression (3)
System\IO\Compression\ZipArchiveEntry.cs (3)
67
_archive
= archive;
170
_archive
= archive;
462
_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)
212
if (
_archive
.Mode == ZipArchiveMode.Create)
214
_archive
.AcquireArchiveStream(this);
223
public ZipArchive Archive =>
_archive
;
308
_fileComment = ZipHelper.GetEncodedTruncatedBytesFromString(value,
_archive
.EntryNameAndCommentEncoding, ushort.MaxValue, out bool isUTF8);
335
value,
_archive
.EntryNameAndCommentEncoding, 0 /* No truncation */, out bool isUTF8);
382
if (
_archive
.Mode == ZipArchiveMode.Read)
386
if (
_archive
.Mode == ZipArchiveMode.Create && _everOpenedForWrite)
444
if (
_archive
== null)
454
if (
_archive
.Mode != ZipArchiveMode.Update)
459
_archive
.ThrowIfDisposed();
461
_archive
.RemoveEntry(this);
540
private FileAccess InferAccessFromMode() =>
_archive
.Mode switch
554
switch (
_archive
.Mode)
573
switch (
_archive
.Mode)
581
Debug.Assert(
_archive
.Mode == ZipArchiveMode.Update);
603
:
_archive
?.EntryNameAndCommentEncoding ?? Encoding.UTF8;
620
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
624
if (!ZipLocalFileHeader.TrySkipBlock(
_archive
.ArchiveStream))
629
_storedOffsetOfCompressedData =
_archive
.ArchiveStream.Position;
651
if (_offsetOfLocalHeader >
_archive
.ArchiveStream.Length)
656
long savedPosition =
_archive
.ArchiveStream.Position;
660
_archive
.ArchiveStream.Seek(offset, SeekOrigin.Begin);
665
_archive
.ArchiveStream.ReadExactly(_aesSalt);
676
_archive
.ArchiveStream.Seek(savedPosition, SeekOrigin.Begin);
848
_archive
.ArchiveStream.Seek(centralDirectoryHeaderLength, SeekOrigin.Current);
910
_archive
.ArchiveStream.Write(cdStaticHeader);
911
_archive
.ArchiveStream.Write(_storedEntryNameBytes);
914
zip64ExtraField?.WriteBlock(
_archive
.ArchiveStream);
919
CreateAesExtraField().WriteBlock(
_archive
.ArchiveStream);
922
ZipGenericExtraField.WriteAllBlocksExcludingTag(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, WinZipAesExtraField.HeaderId);
927
ZipGenericExtraField.WriteAllBlocks(_cdUnknownExtraFields, _cdTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream);
932
_archive
.ArchiveStream.Write(_fileComment);
947
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
948
_lhUnknownExtraFields = ZipLocalFileHeader.GetExtraFields(
_archive
.ArchiveStream, out _lhTrailingExtraFieldData);
978
_archive
.ArchiveStream.Seek(GetOffsetOfCompressedData(), SeekOrigin.Begin);
982
_archive
.ArchiveStream.ReadAtLeast(_compressedBytes[i], maxSingleBufferSize, throwOnEndOfStream: true);
984
_archive
.ArchiveStream.ReadAtLeast(_compressedBytes[_compressedBytes.Length - 1], (int)(_compressedSize % maxSingleBufferSize), throwOnEndOfStream: true);
1182
Stream compressedStream = new SubReadStream(
_archive
.ArchiveStream, offsetOfCompressedData, _compressedSize);
1223
_archive
.DebugAssertIsStillArchiveStreamOwner(this);
1237
Stream targetStream =
_archive
.ArchiveStream;
1248
baseStream:
_archive
.ArchiveStream,
1262
baseStream:
_archive
.ArchiveStream,
1277
entry.
_archive
.ReleaseArchiveStream(entry);
1280
streamForPosition: encryptionMethod != ZipEncryptionMethod.None ?
_archive
.ArchiveStream : null);
1449
if (!IsEncrypted && !ZipLocalFileHeader.TrySkipBlock(
_archive
.ArchiveStream))
1456
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
1460
if (!ZipLocalFileHeader.TrySkipBlock(
_archive
.ArchiveStream))
1497
if (_diskNumberStart !=
_archive
.NumberOfThisDisk)
1502
if (_offsetOfLocalHeader >
_archive
.ArchiveStream.Length)
1508
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader, SeekOrigin.Begin);
1519
_compressedSize >
_archive
.ArchiveStream.Length - offsetOfCompressedData)
1611
_offsetOfLocalHeader =
_archive
.ArchiveStream.Position;
1628
bool isCreateMode =
_archive
.Mode == ZipArchiveMode.Create;
1643
if (!
_archive
.ArchiveStream.CanSeek)
1653
else if (isCreateMode && !
_archive
.ArchiveStream.CanSeek)
1689
_offsetOfLocalHeader =
_archive
.ArchiveStream.Position;
1722
_archive
.ArchiveStream.Seek(ZipLocalFileHeader.SizeOfLocalHeader + _storedEntryNameBytes.Length + extraFieldLength, SeekOrigin.Current);
1731
if (isEmptyFile ||
_archive
.ArchiveStream.CanSeek)
1782
_archive
.ArchiveStream.Write(lfStaticHeader);
1783
_archive
.ArchiveStream.Write(_storedEntryNameBytes);
1786
zip64ExtraField?.WriteBlock(
_archive
.ArchiveStream);
1791
CreateAesExtraField().WriteBlock(
_archive
.ArchiveStream);
1794
ZipGenericExtraField.WriteAllBlocksExcludingTag(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream, WinZipAesExtraField.HeaderId);
1799
ZipGenericExtraField.WriteAllBlocks(_lhUnknownExtraFields, _lhTrailingExtraFieldData ?? Array.Empty<byte>(),
_archive
.ArchiveStream);
1832
long startPosition =
_archive
.ArchiveStream.Position;
1837
baseStream:
_archive
.ArchiveStream,
1844
using (CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition:
_archive
.ArchiveStream))
1851
_compressedSize =
_archive
.ArchiveStream.Position - startPosition;
1863
long startPosition =
_archive
.ArchiveStream.Position;
1868
baseStream:
_archive
.ArchiveStream,
1881
using (CheckSumAndSizeWriteStream crcStream = GetDataCompressor(encryptionStream, leaveBackingStreamOpen: true, onClose: null, streamForPosition:
_archive
.ArchiveStream))
1899
_compressedSize =
_archive
.ArchiveStream.Position - startPosition;
1909
using (DirectToArchiveWriterStream entryWriter = new(GetDataCompressor(
_archive
.ArchiveStream, true, null, null), this))
1956
long currentPos =
_archive
.ArchiveStream.Position;
1957
_archive
.ArchiveStream.Seek(
1962
_archive
.ArchiveStream.Write(flagBytes);
1963
_archive
.ArchiveStream.Seek(currentPos, SeekOrigin.Begin);
1980
_archive
.ArchiveStream.Write(compressedBytes, 0, compressedBytes.Length);
1993
if (
_archive
.Mode == ZipArchiveMode.Update || !_everOpenedForWrite)
2004
if (_endOfLocalEntryData >
_archive
.ArchiveStream.Position)
2006
_archive
.ArchiveStream.Seek(_endOfLocalEntryData, SeekOrigin.Begin);
2035
_archive
.ArchiveStream.Write(writeBuffer[..MetadataBufferLength]);
2041
_archive
.ArchiveStream.Write(writeBuffer[..CrcAndSizesBufferLength]);
2052
_archive
.ArchiveStream.Write(writeBuffer[..Zip64SizesBufferLength]);
2056
_archive
.ArchiveStream.Seek(finalPosition, SeekOrigin.Begin);
2064
_archive
.ArchiveStream.Write(writeBuffer[..Zip64DataDescriptorCrcAndSizesBufferLength]);
2070
finalPosition =
_archive
.ArchiveStream.Position;
2091
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.FieldLocations.VersionNeededToExtract,
2099
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.FieldLocations.Crc32,
2123
_archive
.ArchiveStream.Seek(_offsetOfLocalHeader + ZipLocalFileHeader.SizeOfLocalHeader
2151
_archive
.ArchiveStream.Write(dataDescriptor[..bytesToWrite]);
2213
if (
_archive
== null)
2217
_archive
.ThrowIfDisposed();
2453
long startPosition = _entry.
_archive
.ArchiveStream.Position;
2457
_entry._compressedSize = _entry.
_archive
.ArchiveStream.Position - startPosition;
2465
if (_entry.
_archive
.ArchiveStream.CanSeek)
2512
long startPosition = _entry.
_archive
.ArchiveStream.Position;
2516
_entry._compressedSize = _entry.
_archive
.ArchiveStream.Position - startPosition;
2524
if (_entry.
_archive
.ArchiveStream.CanSeek)