mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-04-28 08:59:56 +00:00
41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
#nullable disable
|
|
|
|
using System.IO;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using SharpCompress.Compressors.LZMA;
|
|
using SharpCompress.Compressors.LZMA.Utilites;
|
|
|
|
namespace SharpCompress.Common.SevenZip;
|
|
|
|
internal sealed partial class ArchiveDatabase
|
|
{
|
|
internal async ValueTask<Stream> GetFolderStreamAsync(
|
|
Stream stream,
|
|
CFolder folder,
|
|
IPasswordProvider pw,
|
|
CancellationToken cancellationToken
|
|
)
|
|
{
|
|
var packStreamIndex = folder._firstPackStreamId;
|
|
var folderStartPackPos = GetFolderStreamPos(folder, 0);
|
|
var count = folder._packStreams.Count;
|
|
var packSizes = new long[count];
|
|
for (var j = 0; j < count; j++)
|
|
{
|
|
packSizes[j] = _packSizes[packStreamIndex + j];
|
|
}
|
|
|
|
return await DecoderStreamHelper
|
|
.CreateDecoderStreamAsync(
|
|
stream,
|
|
folderStartPackPos,
|
|
packSizes,
|
|
folder,
|
|
pw,
|
|
cancellationToken
|
|
)
|
|
.ConfigureAwait(false);
|
|
}
|
|
}
|