Class TarArchive
Namespace: Aspose.Zip.Tar
Assembly: Aspose.Zip.dll (25.1.0)
此类表示 tar 归档文件。使用它来创建、提取或更新 tar 归档。
public class TarArchive : IArchive, IDisposable
继承
实现
继承成员
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
构造函数
TarArchive()
初始化 Aspose.Zip.Tar.TarArchive 类的新实例。
public TarArchive()
示例
以下示例演示如何压缩文件。
using (var archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.tar");
}
TarArchive(Stream)
初始化 Aspose.Zip.Archive 类的新实例,并构建可以从归档中提取的条目列表。
public TarArchive(Stream sourceStream)
参数
sourceStream
Stream
归档的来源。必须可寻址。
示例
以下示例演示如何将所有条目提取到目录中。
using (var archive = new TarArchive(File.OpenRead("archive.tar")))
{
archive.ExtractToDirectory("C:\extracted");
}
备注
此构造函数不会解压任何条目。请参阅 Aspose.Zip.Tar.TarEntry.Open 方法以进行解压。
异常
sourceStream
不是可寻址的。
TarArchive(string)
初始化 Aspose.Zip.Tar.TarArchive 类的新实例,并构建可以从归档中提取的条目列表。
public TarArchive(string path)
参数
path
string
归档文件的路径。
示例
以下示例演示如何将所有条目提取到目录中。
using (var archive = new TarArchive("archive.tar"))
{
archive.ExtractToDirectory("C:\extracted");
}
备注
此构造函数不会解压任何条目。请参阅 Aspose.Zip.Tar.TarEntry.Open 方法以进行解压。
异常
path
为 null。
调用方没有访问所需权限。
path
为空,仅包含空格或包含无效字符。
访问文件 path
被拒绝。
指定的 path
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
path
中的文件包含中间的冒号 (:)。
未找到文件。
指定的路径无效,例如位于未映射的驱动器上。
文件已打开。
属性
Entries
获取构成归档的 Aspose.Zip.Tar.TarEntry 类型的条目。
public ReadOnlyCollection<tarentry> Entries { get; }
属性值
ReadOnlyCollection<TarEntry>
方法
CreateEntries(DirectoryInfo, bool)
将指定目录中所有文件和目录递归地添加到归档中。
public TarArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
参数
directory
DirectoryInfo
要压缩的目录。
includeRootDirectory
bool
指示是否包含根目录本身。
返回
构成条目的归档。
示例
using (FileStream tarFile = File.Open("archive.tar", FileMode.Create))
{
using (var archive = new TarArchive())
{
archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
archive.Save(tarFile);
}
}
CreateEntries(string, bool)
将指定目录中所有文件和目录递归地添加到归档中。
public TarArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
参数
sourceDirectory
string
要压缩的目录。
includeRootDirectory
bool
指示是否包含根目录本身。
返回
构成条目的归档。
示例
using (FileStream tarFile = File.Open("archive.tar", FileMode.Create))
{
using (var archive = new TarArchive())
{
archive.CreateEntries("C:\folder", false);
archive.Save(tarFile);
}
}
异常
sourceDirectory
为 null。
调用方没有访问 sourceDirectory
的所需权限。
sourceDirectory
包含无效字符,例如 “, <, >, 或 |。
指定的路径、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。指定的路径、文件名或两者过长。
CreateEntry(string, Stream, FileSystemInfo)
在归档中创建单个条目。
public TarEntry CreateEntry(string name, Stream source, FileSystemInfo fileInfo = null)
参数
name
string
条目的名称。
source
Stream
条目的输入流。
fileInfo
FileSystemInfo
要压缩的文件或文件夹的元数据。
返回
Tar 条目实例。
示例
using (var archive = new TarArchive())
{
archive.CreateEntry("bytes", new MemoryStream(new byte[] {0x00, 0xFF}));
archive.Save(tarFile);
}
备注
条目名称仅在 name
参数中设置。fileInfo
参数中提供的文件名不会影响条目名称。
fileInfo
可以引用 System.IO.DirectoryInfo,如果条目是目录。
异常
name
对于 tar 来说太长,符合 IEEE 1003.1-1998 标准。
文件名作为 name
的一部分,超过 100 个符号。
CreateEntry(string, FileInfo, bool)
在归档中创建单个条目。
public TarEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)
参数
name
string
条目的名称。
fileInfo
FileInfo
要压缩的文件或文件夹的元数据。
openImmediately
bool
如果立即打开文件,则为 true;否则在归档保存时打开文件。
返回
Tar 条目实例。
示例
FileInfo fi = new FileInfo("data.bin");
using (var archive = new TarArchive())
{
archive.CreateEntry("data.bin", fi);
archive.Save(tarFile);
}
备注
条目名称仅在 name
参数中设置。fileInfo
参数中提供的文件名不会影响条目名称。
fileInfo
可以引用 System.IO.DirectoryInfo,如果条目是目录。
如果使用 openImmediately
参数立即打开文件,则在归档被处置之前,该文件会被阻塞。
异常
name
对于 tar 来说太长,符合 IEEE 1003.1-1998 标准。
文件名作为 name
的一部分,超过 100 个符号。
CreateEntry(string, string, bool)
在归档中创建单个条目。
public TarEntry CreateEntry(string name, string path, bool openImmediately = false)
参数
name
string
条目的名称。
path
string
要压缩的文件的路径。
openImmediately
bool
如果立即打开文件,则为 true;否则在归档保存时打开文件。
返回
Tar 条目实例。
示例
using (var archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save(outputTarFile);
}
备注
条目名称仅在 name
参数中设置。path
参数中提供的文件名不会影响条目名称。
如果使用 openImmediately
参数立即打开文件,则在归档被处置之前,该文件会被阻塞。
异常
path
为 null。
调用方没有访问所需权限。
path
为空,仅包含空格或包含无效字符。 - 或 - 文件名作为 name
的一部分,超过 100 个符号。
访问文件 path
被拒绝。
指定的 path
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。 - 或 - name
对于 tar 来说太长,符合 IEEE 1003.1-1998 标准。
path
中的文件包含中间的冒号 (:)。
DeleteEntry(TarEntry)
从条目列表中删除特定条目的第一个出现。
public TarArchive DeleteEntry(TarEntry entry)
参数
entry
TarEntry
要从条目列表中删除的条目。
返回
删除条目的归档。
示例
以下是如何删除所有条目(除最后一个外):
using (var archive = new TarArchive("archive.tar"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputTarFile);
}
DeleteEntry(int)
通过索引从条目列表中删除条目。
public TarArchive DeleteEntry(int entryIndex)
参数
entryIndex
int
要删除的条目的零基索引。
返回
删除条目的归档。
示例
using (var archive = new TarArchive("two_files.tar"))
{
archive.DeleteEntry(0);
archive.Save("single_file.tar");
}
异常
entryIndex
小于 0。 - 或 - entryIndex
等于或大于 Entries
的计数。
Dispose()
执行与释放、释放或重置非托管资源相关的应用程序定义的任务。
public void Dispose()
Dispose(bool)
执行与释放、释放或重置非托管资源相关的应用程序定义的任务。
protected virtual void Dispose(bool disposing)
参数
disposing
bool
是否应释放托管资源。
ExtractToDirectory(string)
将归档中的所有文件提取到提供的目录中。
public void ExtractToDirectory(string destinationDirectory)
参数
destinationDirectory
string
要放置提取文件的目录路径。
示例
using (var archive = new TarArchive("archive.tar"))
{
archive.ExtractToDirectory("C:\extracted");
}
备注
如果目录不存在,将会创建它。
异常
path 为 null
指定的路径、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
调用方没有访问现有目录的所需权限。
如果目录不存在,路径包含不属于驱动器标签 (“C:") 的冒号字符 (:)。
path 是零长度字符串,仅包含空格或包含一个或多个无效字符。可以使用 System.IO.Path.GetInvalidPathChars 方法查询无效字符。 - 或 - path 以冒号字符 (:) 为前缀,或仅包含冒号字符。
指定路径的目录是一个文件。 - 或 - 网络名称未知。
FromGZip(Stream)
提取提供的 gzip 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:gzip 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromGZip(Stream source)
参数
source
Stream
归档的来源。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
GZip 提取流由于压缩算法的性质而不可寻址。 Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
异常
归档已损坏。
FromGZip(string)
提取提供的 gzip 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:gzip 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromGZip(string path)
参数
path
string
归档文件的路径。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
GZip 提取流由于压缩算法的性质而不可寻址。 Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
异常
归档已损坏。
FromLZMA(Stream)
提取提供的 LZMA 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:LZMA 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromLZMA(Stream source)
参数
source
Stream
归档的来源。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
LZMA 提取流由于压缩算法的性质而不可寻址。Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromLZMA(string)
提取提供的 LZMA 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:LZMA 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromLZMA(string path)
参数
path
string
归档文件的路径。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
LZMA 提取流由于压缩算法的性质而不可寻址。Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromLZip(Stream)
提取提供的 lzip 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:lzip 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromLZip(Stream source)
参数
source
Stream
归档的来源。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
Lzip 提取流由于压缩算法的性质而不可寻址。Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromLZip(string)
提取提供的 lzip 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:lzip 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromLZip(string path)
参数
path
string
归档文件的路径。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
Lzip 提取流由于压缩算法的性质而不可寻址。Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromXz(Stream)
提取提供的 xz 格式归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:xz 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromXz(Stream source)
参数
source
Stream
归档的来源。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromXz(string)
提取提供的 xz 格式归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:xz 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromXz(string path)
参数
path
string
归档文件的路径。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromZ(Stream)
提取提供的 Z 格式归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:Z 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromZ(Stream source)
参数
source
Stream
归档的来源。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromZ(string)
提取提供的 Z 格式归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:Z 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromZ(string path)
参数
path
string
归档文件的路径。
返回
Aspose.Zip.Tar.TarArchive 的实例
备注
Tar 归档提供提取任意记录的功能,因此它必须在内部操作可寻址流。
FromZstandard(Stream)
提取提供的 Zstandard 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:Zstandard 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromZstandard(Stream source)
参数
source
Stream
归档的来源。
返回
Aspose.Zip.Tar.TarArchive 的实例
异常
Zstandard 流已损坏或不可读。
数据已损坏。
FromZstandard(string)
提取提供的 Zstandard 归档,并从提取的数据构建 Aspose.Zip.Tar.TarArchive。
重要:Zstandard 归档在此方法中完全提取,其内容在内部保留。注意内存消耗。
public static TarArchive FromZstandard(string path)
参数
path
string
归档文件的路径。
返回
Aspose.Zip.Tar.TarArchive 的实例
异常
Zstandard 流已损坏或不可读。
数据已损坏。
Save(Stream, TarFormat?)
将归档保存到提供的流中。
public void Save(Stream output, TarFormat? format = null)
参数
output
Stream
目标流。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream tarFile = File.Open("archive.tar", FileMode.Create))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save(tarFile);
}
}
备注
output
必须是可写的。
异常
output
不是可写的。 - 或 - output
是我们提取的相同流。
- 或 -
由于格式限制,无法以 format
保存归档。
Save(string, TarFormat?)
将归档保存到提供的目标文件中。
public void Save(string destinationFileName, TarFormat? format = null)
参数
destinationFileName
string
要创建的归档的路径。如果指定的文件名指向现有文件,则将覆盖它。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (var archive = new TarArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save("myarchive.tar");
}
备注
可以将归档保存到与加载时相同的路径。 但是,不建议这样做,因为这种方法使用临时文件进行复制。
异常
destinationFileName
是零长度字符串,仅包含空格或包含一个或多个无效字符,如 System.IO.Path.InvalidPathChars 所定义的。
destinationFileName
为 null。
指定的 destinationFileName
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
指定的 destinationFileName
无效,例如,它位于未映射的驱动器上。
打开文件时发生 I/O 错误。
destinationFileName
指定的文件为只读,且访问权限不是读取。 - 或 - 指定的路径为目录。 - 或 - 调用方没有所需的权限。
destinationFileName
的格式无效。
未找到文件。
SaveGzipped(Stream, TarFormat?)
将归档保存到带 gzip 压缩的流中。
public void SaveGzipped(Stream output, TarFormat? format = null)
参数
output
Stream
目标流。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream result = File.OpenWrite("result.tar.gz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped(result);
}
}
}
备注
output
必须是可写的。
异常
output
为 null。
output
不是可写的。
SaveGzipped(string, TarFormat?)
将归档保存到带 gzip 压缩的路径文件中。
public void SaveGzipped(string path, TarFormat? format = null)
参数
path
string
要创建的归档的路径。如果指定的文件名指向现有文件,则将覆盖它。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped("result.tar.gz");
}
}
SaveLZMACompressed(Stream, TarFormat?)
将归档保存到带 LZMA 压缩的流中。
public void SaveLZMACompressed(Stream output, TarFormat? format = null)
参数
output
Stream
目标流。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream result = File.OpenWrite("result.tar.lzma"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveLZMACompressed(result);
}
}
}
备注
output
必须是可写的。
异常
output
为 null。
output
不是可写的。
SaveLZMACompressed(string, TarFormat?)
将归档保存到带 lzma 压缩的路径文件中。
public void SaveLZMACompressed(string path, TarFormat? format = null)
参数
path
string
要创建的归档的路径。如果指定的文件名指向现有文件,则将覆盖它。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveLZMACompressed("result.tar.lzma");
}
}
备注
重要:tar 归档在此方法中构建并压缩,其内容在内部保留。注意内存消耗。
SaveLzipped(Stream, TarFormat?)
将归档保存到带 lzip 压缩的流中。
public void SaveLzipped(Stream output, TarFormat? format = null)
参数
output
Stream
目标流。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream result = File.OpenWrite("result.tar.lz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveLzipped(result);
}
}
}
备注
output
必须是可写的。
异常
output
为 null。
output
不是可写的。
SaveLzipped(string, TarFormat?)
将归档保存到带 lzip 压缩的路径文件中。
public void SaveLzipped(string path, TarFormat? format = null)
参数
path
string
要创建的归档的路径。如果指定的文件名指向现有文件,则将覆盖它。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped("result.tar.lz");
}
}
SaveXzCompressed(Stream, TarFormat?, XzArchiveSettings)
将归档保存到带 xz 压缩的流中。
public void SaveXzCompressed(Stream output, TarFormat? format = null, XzArchiveSettings settings = null)
参数
output
Stream
目标流。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
settings
XzArchiveSettings
特定 xz 归档的设置集:字典大小、块大小、检查类型。
示例
using (FileStream result = File.OpenWrite("result.tar.xz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveXzCompressed(result);
}
}
}
备注
output
流必须是可写的。
异常
output
为 null。
output
不是可写的。
SaveXzCompressed(string, TarFormat?, XzArchiveSettings)
将归档保存到带 xz 压缩的路径文件中。
public void SaveXzCompressed(string path, TarFormat? format = null, XzArchiveSettings settings = null)
参数
path
string
要创建的归档的路径。如果指定的文件名指向现有文件,则将覆盖它。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
settings
XzArchiveSettings
特定 xz 归档的设置集:字典大小、块大小、检查类型。
示例
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveXzCompressed("result.tar.xz");
}
}
SaveZCompressed(Stream, TarFormat?)
将归档保存到带 Z 压缩的流中。
public void SaveZCompressed(Stream output, TarFormat? format = null)
参数
output
Stream
目标流。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream result = File.OpenWrite("result.tar.Z"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZCompressed(result);
}
}
}
备注
output
必须是可写的。
异常
output
为 null。
output
不是可写的。
SaveZCompressed(string, TarFormat?)
将归档保存到带 Z 压缩的路径文件中。
public void SaveZCompressed(string path, TarFormat? format = null)
参数
path
string
要创建的归档的路径。如果指定的文件名指向现有文件,则将覆盖它。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZCompressed("result.tar.Z");
}
}
SaveZstandard(Stream, TarFormat?)
将归档保存到带 Zstandard 压缩的流中。
public void SaveZstandard(Stream output, TarFormat? format = null)
参数
output
Stream
目标流。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream result = File.OpenWrite("result.tar.zst"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZstandard(result);
}
}
}
备注
output
必须是可写的。
异常
output
为 null。
output
不是可写的。
SaveZstandard(string, TarFormat?)
将归档保存到带 Zstandard 压缩的文件路径中。
public void SaveZstandard(string path, TarFormat? format = null)
参数
path
string
要创建的归档的路径。如果指定的文件名指向现有文件,则将覆盖它。
format
TarFormat?
定义 tar 头格式。空值将在可能的情况下视为 USTar。
示例
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new TarArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZstandard("result.tar.zst");
}
}