How do you pack a large file into a Tar?
If you use this code, then a lot of RAM is used.
using (TarWriter tarwriter = new(_writestream, TarEntryFormat.Pax, leaveOpen: false))
using (FileStream srcFile = new(item, FileMode.Open, FileAccess.Read))
{
string fileName = item.Remove(0, mainDir.Length + 1).Replace('\', '/');
PaxTarEntry te = new(TarEntryType.RegularFile, fileName)
{
DataStream = new MemoryStream()
};
int currentBlockSize = 0;
while ((currentBlockSize = srcFile.Read(buffer)) > 0)
{
te.DataStream.Write(buffer.AsSpan(0, currentBlockSize));
}
te.DataStream.Position = 0;
tarwriter.WriteEntry(te);
}