Files
sharpcompress/src/SharpCompress/Common/Zip/StreamingZipFilePart.Async.cs
2026-02-04 14:12:04 +00:00

32 lines
902 B
C#

using System.IO;
using System.Threading;
using System.Threading.Tasks;
using SharpCompress.IO;
namespace SharpCompress.Common.Zip;
internal sealed partial class StreamingZipFilePart
{
internal override async ValueTask<Stream?> GetCompressedStreamAsync(
CancellationToken cancellationToken = default
)
{
if (!Header.HasData)
{
return Stream.Null;
}
_decompressionStream = await CreateDecompressionStreamAsync(
await GetCryptoStreamAsync(CreateBaseStream(), cancellationToken)
.ConfigureAwait(false),
Header.CompressionMethod,
cancellationToken
)
.ConfigureAwait(false);
if (LeaveStreamOpen)
{
return SharpCompressStream.CreateNonDisposing(_decompressionStream);
}
return _decompressionStream;
}
}