Class Bzip2Archive
Namespace: Aspose.Zip.Bzip2
Assembly: Aspose.Zip.dll (25.1.0)
Этот класс представляет файл архива bzip2. Используйте его для создания или извлечения архивов bzip2.
public class Bzip2Archive : IArchive, IDisposable, IArchiveFileEntry
Наследование
Реализует
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 для распаковки.
Исключения
path
равно null.
У вызывающего нет необходимых прав для доступа.
path
пуст, содержит только пробелы или содержит недопустимые символы.
Доступ к файлу path
запрещен.
Указанный path
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
Файл по path
содержит двоеточие (:) в середине строки.
Файл не найден.
Указанный путь недействителен, например, находится на неотображаемом диске.
Файл уже открыт.
Методы
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);
}
Исключения
destination
не поддерживает запись.
Extract(string)
Извлекает архив в файл по указанному пути.
public FileInfo Extract(string path)
Параметры
path
string
Путь к файлу назначения. Если файл уже существует, он будет перезаписан.
Возвращает
Информация о извлеченном файле.
Исключения
path
равно null.
У вызывающего нет необходимых прав для доступа.
path
пуст, содержит только пробелы или содержит недопустимые символы.
Доступ к файлу path
запрещен.
Указанный path
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
Файл по path
содержит двоеточие (:) в середине строки.
Файл не найден.
Указанный путь недействителен, например, находится на неотображаемом диске.
Файл уже открыт.
ExtractToDirectory(string)
Извлекает содержимое архива в указанный каталог.
public void ExtractToDirectory(string destinationDirectory)
Параметры
destinationDirectory
string
Путь к каталогу, в который будут помещены извлеченные файлы.
Замечания
Если каталог не существует, он будет создан.
Исключения
destinationDirectory
равно null.
Указанный путь, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
У вызывающего нет необходимых прав для доступа к существующему каталогу.
Если каталог не существует, путь содержит символ двоеточия (:) , который не является частью метки диска (“C:").
destinationDirectory
является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете проверить наличие недопустимых символов, используя метод System.IO.Path.GetInvalidPathChars.
-или- путь начинается с или содержит только символ двоеточия (:).
Каталог, указанный в пути, является файлом. -или- Сетевое имя неизвестно.
Open()
Открывает архив для извлечения и предоставляет поток с содержимым архива.
public Stream Open()
Возвращает
Поток, представляющий содержимое архива.
Примеры
Использование:
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 Кб.
Примеры
Записывает сжатые данные в поток http-ответа.
using (var archive = new Bzip2Archive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
Замечания
outputStream
должен быть записываемым.
Исключения
Источник данных для архивации не был предоставлен.
outputStream
не является записываемым.
Файл источника является только для чтения или является каталогом.
Указанный путь файла источника недействителен, например, находится на неотображаемом диске.
Файл источника уже открыт.
Save(string, Bzip2SaveOptions)
Сохраняет архив в указанный файл назначения.
public void Save(string destinationFileName, Bzip2SaveOptions saveOptions = null)
Параметры
destinationFileName
string
Путь к создаваемому архиву. Если указанное имя файла указывает на существующий файл, он будет перезаписан.
saveOptions
Bzip2SaveOptions
Опции для сохранения архива bzip2. Если не указано, будет использоваться размер блока 900 Кб.
Примеры
Записывает сжатые данные в файл.
using (var archive = new Bzip2Archive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("data.bz2");
}
Исключения
destinationFileName
равно null.
У вызывающего нет необходимых прав для доступа.
destinationFileName
пуст, содержит только пробелы или содержит недопустимые символы.
Доступ к файлу destinationFileName
запрещен.
Указанный destinationFileName
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
Файл по 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");
}
Исключения
path
равно null.
У вызывающего нет необходимых прав для доступа.
path
пуст, содержит только пробелы или содержит недопустимые символы.
Доступ к файлу path
запрещен.
Указанный path
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
Файл по path
содержит двоеточие (:) в середине строки.
SetSource(TarArchive, TarFormat)
Устанавливает содержимое, которое будет сжато в архиве.
public void SetSource(TarArchive tarArchive, TarFormat format = TarFormat.UsTar)
Параметры
tarArchive
TarArchive
Тар-архив, который будет сжат.
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.