Files
sharpcompress/src/SharpCompress/Common/Tar/TarFilePart.cs

37 lines
984 B
C#
Raw Normal View History

2015-12-30 11:19:42 +00:00
using System.IO;
using SharpCompress.Common.Tar.Headers;
using SharpCompress.IO;
namespace SharpCompress.Common.Tar
{
2020-05-23 16:27:55 -07:00
internal sealed class TarFilePart : FilePart
2015-12-30 11:19:42 +00:00
{
private readonly Stream _seekableStream;
2015-12-30 11:19:42 +00:00
internal TarFilePart(TarHeader header, Stream seekableStream)
: base(header.ArchiveEncoding)
2015-12-30 11:19:42 +00:00
{
2018-05-05 19:35:58 +01:00
_seekableStream = seekableStream;
2015-12-30 11:19:42 +00:00
Header = header;
}
internal TarHeader Header { get; }
2015-12-30 11:19:42 +00:00
2017-05-19 10:52:49 +01:00
internal override string FilePartName => Header.Name;
2015-12-30 11:19:42 +00:00
internal override Stream GetCompressedStream()
{
if (_seekableStream != null)
2015-12-30 11:19:42 +00:00
{
2020-05-23 16:27:55 -07:00
_seekableStream.Position = Header.DataStartPosition!.Value;
return new TarReadOnlySubStream(_seekableStream, Header.Size);
2015-12-30 11:19:42 +00:00
}
return Header.PackedStream;
}
2020-05-23 16:27:55 -07:00
internal override Stream? GetRawStream()
2015-12-30 11:19:42 +00:00
{
return null;
}
}
2013-04-28 12:32:55 +01:00
}