GzipArchive.SetSource

SetSource(Stream)

设置要在存档中压缩的内容。

public void SetSource(Stream source)
范围类型描述
sourceStream存档的输入流。

例子

using (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

也可以看看


SetSource(FileInfo)

设置要在存档中压缩的内容。

public void SetSource(FileInfo fileInfo)
范围类型描述
fileInfoFileInfo对要压缩的文件的引用。

例子

从流中打开存档并将其提取到内存流

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.gz");
}

也可以看看


SetSource(string)

设置要在存档中压缩的内容。

public void SetSource(string path)
范围类型描述
pathString要压缩的文件的路径。

例外

例外(健康)状况
ArgumentNullExceptionpath一片空白。
SecurityException调用者没有所需的访问权限。
ArgumentExceptionpath为空、仅包含空格或包含无效字符。
UnauthorizedAccessException访问文件path被拒绝。
PathTooLongException指定的path、文件名或两者都超过了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
NotSupportedException归档于path在字符串中间包含一个冒号 (:)。

例子

按路径从文件中打开存档并将其解压缩到内存流

using (var archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

也可以看看


SetSource(TarArchive)

设置要在存档中压缩的内容。

public void SetSource(TarArchive tarArchive)
范围类型描述
tarArchiveTarArchive要压缩的 Tar 存档。

评论

使用此方法组成联合 tar.gz 压缩包。

例子

using (var tarArchive = new TarArchive())
{
    tarArchive.CreateEntry("first.bin", "data1.bin");
    tarArchive.CreateEntry("second.bin", "data2.bin");
    using (var gzippedArchive = new GzipArchive())
    {
           gzippedArchive.SetSource(tarArchive);
           gzippedArchive.Save("archive.tar.gz");
    }
}

也可以看看