Class Bzip2Archive

Class Bzip2Archive

Namespace: Aspose.Zip.Bzip2
Assembly: Aspose.Zip.dll (25.1.0)

此类表示bzip2归档文件。使用它来组成或提取bzip2归档。

public class Bzip2Archive : IArchive, IDisposable, IArchiveFileEntry

继承

objectBzip2Archive

实现

IArchive, IDisposable, IArchiveFileEntry

继承的成员

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

备注

bzip2使用Burrows-Wheeler块排序文本压缩算法和哈夫曼编码来压缩文件。更多信息见:https://en.wikipedia.org/wiki/Bzip2

构造函数

Bzip2Archive()

初始化一个新的Aspose.Zip.Bzip2.Bzip2Archive类的实例,准备进行压缩。

public Bzip2Archive()

示例

以下示例演示如何压缩文件。

using (Bzip2Archive archive = new Bzip2Archive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.bz2");
}

Bzip2Archive(Stream, Bzip2LoadOptions)

初始化一个新的Aspose.Zip.Bzip2.Bzip2Archive类的实例,准备进行解压缩。

public Bzip2Archive(Stream sourceStream, Bzip2LoadOptions loadOptions = null)

参数

sourceStream Stream

归档的来源。

loadOptions Bzip2LoadOptions

加载归档的选项。

示例

从流中打开归档并提取到MemoryStream

var ms = new MemoryStream();
using (Bzip2Archive archive = new Bzip2Archive(File.OpenRead("archive.bz2")))
  archive.Open().CopyTo(ms);

备注

此构造函数不进行解压缩。有关解压缩的请参见Aspose.Zip.Bzip2.Bzip2Archive.Open方法。

Bzip2Archive(string, Bzip2LoadOptions)

初始化一个新的Aspose.Zip.Bzip2.Bzip2Archive类的实例,准备进行解压缩。

public Bzip2Archive(string path, Bzip2LoadOptions loadOptions = null)

参数

path string

归档文件的路径。

loadOptions Bzip2LoadOptions

加载归档的选项。

示例

通过路径从文件中打开归档并提取到MemoryStream

var ms = new MemoryStream();
using (Bzip2Archive archive = new Bzip2Archive("archive.bz2"))
  archive.Open().CopyTo(ms);

备注

此构造函数不进行解压缩。有关解压缩的请参见Aspose.Zip.Bzip2.Bzip2Archive.Open方法。

异常

ArgumentNullException

path 为null。

SecurityException

调用者没有访问所需权限。

ArgumentException

path 为空,仅包含空格或包含无效字符。

UnauthorizedAccessException

访问文件path被拒绝。

PathTooLongException

指定的path、文件名或两者超出了系统定义的最大长度。例如,在基于Windows的平台上,路径必须少于248个字符,文件名必须少于260个字符。

NotSupportedException

path 中间包含冒号(:)。

FileNotFoundException

未找到文件。

DirectoryNotFoundException

指定的路径无效,例如位于未映射的驱动器上。

IOException

文件已打开。

方法

Dispose()

执行与释放、释放或重置非托管资源相关的应用程序定义任务。

public void Dispose()

Dispose(bool)

执行与释放、释放或重置非托管资源相关的应用程序定义任务。

protected virtual void Dispose(bool disposing)

参数

disposing bool

是否应释放托管资源。

Extract(Stream)

将归档提取到提供的流中。

public void Extract(Stream destination)

参数

destination Stream

目标流。必须可写。

示例

using (Bzip2Archive archive = new Bzip2Archive("archive.bz2"))
{
     archive.Extract(httpResponseStream);
}

异常

ArgumentException

destination 不支持写入。

Extract(string)

将归档提取到指定路径的文件中。

public FileInfo Extract(string path)

参数

path string

目标文件的路径。如果文件已存在,将被覆盖。

返回

FileInfo

提取文件的信息。

异常

ArgumentNullException

path 为null。

SecurityException

调用者没有访问所需权限。

ArgumentException

path 为空,仅包含空格或包含无效字符。

UnauthorizedAccessException

访问文件path被拒绝。

PathTooLongException

指定的path、文件名或两者超出了系统定义的最大长度。例如,在基于Windows的平台上,路径必须少于248个字符,文件名必须少于260个字符。

NotSupportedException

文件在path 中间包含冒号(:)。

FileNotFoundException

未找到文件。

DirectoryNotFoundException

指定的路径无效,例如位于未映射的驱动器上。

IOException

文件已打开。

ExtractToDirectory(string)

将归档的内容提取到提供的目录中。

public void ExtractToDirectory(string destinationDirectory)

参数

destinationDirectory string

提取文件的目录路径。

备注

如果目录不存在,将被创建。

异常

ArgumentNullException

destinationDirectory 为null。

PathTooLongException

指定的路径、文件名或两者超出了系统定义的最大长度。例如,在基于Windows的平台上,路径必须少于248个字符,文件名必须少于260个字符。

SecurityException

调用者没有访问现有目录的所需权限。

NotSupportedException

如果目录不存在,路径包含不是驱动器标签(“C:")的一部分的冒号字符(:)。

ArgumentException

destinationDirectory 是零长度字符串,仅包含空格或包含一个或多个无效字符。您可以使用System.IO.Path.GetInvalidPathChars方法查询无效字符。 -或- 路径以仅包含冒号字符(:)为前缀或包含。

IOException

指定路径的目录是文件。-或- 网络名称未知。

Open()

打开归档以进行提取,并提供包含归档内容的流。

public Stream Open()

返回

Stream

表示归档内容的流。

示例

用法: Stream decompressed = archive.Open();

.NET 4.0及更高版本 - 使用Stream.CopyTo方法: decompressed.CopyTo(httpResponse.OutputStream)

.NET 3.5及之前 - 手动复制字节:

byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
 fileStream.Write(buffer, 0, bytesRead);
```</p>

#### 备注

从流中读取以获取文件的原始内容。请参见示例部分。

### <a id="Aspose_Zip_Bzip2_Bzip2Archive_Save_System_IO_Stream_Aspose_Zip_Bzip2_Bzip2SaveOptions_"></a> Save\(Stream, Bzip2SaveOptions\)

将归档保存到提供的流中。

```csharp
public void Save(Stream outputStream, Bzip2SaveOptions saveOptions = null)

参数

outputStream Stream

目标流。

saveOptions Bzip2SaveOptions

保存bzip2归档的选项。如果未指定,将使用900 Kb块大小。

示例

将压缩数据写入http响应流。

using (var archive = new Bzip2Archive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

备注

outputStream 必须可写。

异常

InvalidOperationException

要归档的数据源未提供。

ArgumentException

outputStream 不是可写的。

UnauthorizedAccessException

文件源是只读的或是目录。

DirectoryNotFoundException

指定的文件源路径无效,例如位于未映射的驱动器上。

IOException

文件源已打开。

Save(string, Bzip2SaveOptions)

将归档保存到提供的目标文件中。

public void Save(string destinationFileName, Bzip2SaveOptions saveOptions = null)

参数

destinationFileName string

要创建的归档的路径。如果指定的文件名指向现有文件,将被覆盖。

saveOptions Bzip2SaveOptions

保存bzip2归档的选项。如果未指定,将使用900 Kb块大小。

示例

将压缩数据写入文件。

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

异常

ArgumentNullException

destinationFileName 为null。

SecurityException

调用者没有访问所需权限。

ArgumentException

destinationFileName 为空,仅包含空格或包含无效字符。

UnauthorizedAccessException

访问文件destinationFileName被拒绝。

PathTooLongException

指定的destinationFileName、文件名或两者超出了系统定义的最大长度。例如,在基于Windows的平台上,路径必须少于248个字符,文件名必须少于260个字符。

NotSupportedException

文件在destinationFileName 中间包含冒号(:)。

SetSource(Stream)

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

public void SetSource(Stream source)

参数

source Stream

归档的输入流。

示例

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

SetSource(FileInfo)

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

public void SetSource(FileInfo fileInfo)

参数

fileInfo FileInfo

要压缩的文件的引用。

示例

using (Bzip2Archive archive = new Bzip2Archive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.bz2");
}

SetSource(string)

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

public void SetSource(string path)

参数

path string

要压缩的文件的路径。

示例

using (Bzip2Archive archive = new Bzip2Archive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.bz2");
}

异常

ArgumentNullException

path 为null。

SecurityException

调用者没有访问所需权限。

ArgumentException

path 为空,仅包含空格或包含无效字符。

UnauthorizedAccessException

访问文件path被拒绝。

PathTooLongException

指定的path、文件名或两者超出了系统定义的最大长度。例如,在基于Windows的平台上,路径必须少于248个字符,文件名必须少于260个字符。

NotSupportedException

文件在path 中间包含冒号(:)。

SetSource(TarArchive, TarFormat)

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

public void SetSource(TarArchive tarArchive, TarFormat format = TarFormat.UsTar)

参数

tarArchive TarArchive

要压缩的Tar归档。

format TarFormat

定义tar头格式。

示例

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

备注

使用此方法组成联合tar.bz2归档。

SetSource(CpioArchive, CpioFormat)

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

public void SetSource(CpioArchive cpioArchive, CpioFormat format = CpioFormat.OldAscii)

参数

cpioArchive CpioArchive

要压缩的Cpio归档。

format CpioFormat

定义cpio头格式。

示例

using (var cpioArchive = new CpioArchive())
{
    cpioArchive.CreateEntry("first.bin", "data1.bin");
    cpioArchive.CreateEntry("second.bin", "data2.bin");
    using (var bzippedArchive = new Bzip2Archive())
    {
        bzippedArchive.SetSource(cpioArchive);
        bzippedArchive.Save("archive.cpio.bz2");
    }
}

备注

使用此方法组成联合cpio.bz2归档。

 中文