Class GzipArchive
Название пространства: Aspose.Zip.Gzip Ассоциация: Aspose.Zip.dll (25.5.0)
Этот класс представляет собой файл архива gzip. Используйте его для составления или экстракции архивов gzip.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
Inheritance
Implements
IArchive , IDisposable , IArchiveFileEntry
Наследованные члены
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Remarks
Алгоритм компрессии Gzip основан на алгоритме DEFLATE, который является комбинацией LZ77 и Huffman кодирования.
Constructors
GzipArchive()
Инициализует новую инстанцию класса Aspose.Zip.Gzip.GzipArchive, подготовленного для компрессии.
public GzipArchive()
Examples
Следующий пример показывает, как компрессировать файл.
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
GzipArchive(Поток, Боол)
Инициализует новую инстанцию класса Aspose.Zip.Gzip.GzipArchive, подготовленного для декомпрессии.
public GzipArchive(Stream sourceStream, bool parseHeader = false)
Parameters
sourceStream
Stream
Источник этого архива.
parseHeader
bool
Размешать заголовок потока, чтобы выяснить свойства, в том числе имя.
Examples
Откройте архив из потока и выведите его в
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
archive.Open().CopyTo(ms);
Remarks
Этот конструктор не декомпрессирует. см. Aspose.Zip.Gzip.GzipArchive.Open метод декомпрессии.
Exceptions
sourceStream’ is null.
sourceStream’ is too short.
sourceStream" имеет неправильный подпись.
GzipArchive(Стриг, Боол)
Инициализует новую инстанцию класса Aspose.Zip.Gzip.GzipArchive.
public GzipArchive(string path, bool parseHeader = false)
Parameters
path
string
Путь к архиву.
parseHeader
bool
Размешать заголовок потока, чтобы выяснить свойства, в том числе имя.
Examples
Откройте архив из файла по пути и выведите его в
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
archive.Open().CopyTo(ms);
Remarks
Этот конструктор не декомпрессирует. см. Aspose.Zip.Gzip.GzipArchive.Open метод декомпрессии.
Exceptions
path’ is null.
Заказчик не имеет требуемого разрешения на доступ.
path" пустая, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу path" отказывается.
Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл в path’ содержит колону (:) в середине строки.
Файл слишком короткий.
Данные в файле имеют неправильный подпись.
Properties
Name
Название оригинального файла.
public string Name { get; }
Стоимость недвижимости
UncompressedSize
Получается размер оригинального файла.
public ulong UncompressedSize { get; }
Стоимость недвижимости
Remarks
Если некомпрессированный размер файла превышает 4 ГБ, это свойство даст неправильную стоимость из-за 32-битного ограничения в заголовке.
Methods
Dispose()
Осуществляет задания, определенные приложением, связанные с освобождением, освобождением или восстановлением неконтролируемых ресурсов.
public void Dispose()
Dispose(Боол)
Осуществляет задания, определенные приложением, связанные с освобождением, освобождением или восстановлением неконтролируемых ресурсов.
protected virtual void Dispose(bool disposing)
Parameters
disposing
bool
Следует ли использовать управляемые ресурсы.
Extract(Stream)
Экстрактирует архив в предоставленный поток.
public void Extract(Stream destination)
Parameters
destination
Stream
Достопримечательности. должно быть написано.
Examples
using (var archive = new GzipArchive("archive.gz"))
{
archive.Extract(httpResponseStream);
}
Exceptions
destination’ does not support writing.
Поток коррумпирован и не содержит валидных данных.
Extract(Стриг)
Экстрактируйте архив в файл по пути.
public FileInfo Extract(string path)
Parameters
path
string
Путь к целевому файлу.Если файл уже существует, он будет переписан.
Returns
Информация о извлеченных файлах.
Exceptions
path’ is null.
Заказчик не имеет требуемого разрешения на доступ.
path" пустая, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу path" отказывается.
Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл в path’ содержит колону (:) в середине строки.
Поток коррумпирован и не содержит валидных данных.
ExtractToDirectory(Стриг)
Экстракт содержимого архива в предоставленный каталог.
public void ExtractToDirectory(string destinationDirectory)
Parameters
destinationDirectory
string
Путь к каталогу для размещения извлеченных файлов.
Remarks
Если каталог не существует, он будет создан.
Exceptions
destinationDirectory’ is null.
Например, на платформах, основанных на Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Заклинатель не имеет требуемого разрешения на доступ к существующему каталогу.
Если каталог не существует, то маршрут содержит колонный характер (:) который не является частью дисковой маркировки («C:»).
destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).
Каталог, указанный по маршруту, является файлом. -или- Название сети неизвестно.
Open()
Откроет архив для экстракции и обеспечивает поток с содержанием архива.
public Stream Open()
Returns
Проток, который представляет содержимое архива.
Examples
Экстрактирует архив и копирует извлеченный контент в потоки файлов.
using (var archive = new GzipArchive("archive.gz"))
{
using (var extracted = File.Create("data.bin"))
{
var unpacked = archive.Open();
byte[] b = new byte[8192];
int bytesRead;
while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
extracted.Write(b, 0, bytesRead);
}
}
Вы можете воспользоваться методом Stream.CopyTo для .NET 4.0 и выше: unpacked.KopyTo(извлечен);
Remarks
Читайте из потока, чтобы получить оригинальный контент файла. см. раздел Примеры.
Save(Stream)
Сохранить архив в предоставленный поток.
public void Save(Stream outputStream)
Parameters
outputStream
Stream
Достопримечательности потока.
Examples
Напишите компрессированные данные в ответный поток http.
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
Remarks
Он должен быть письменным.
Exceptions
outputStream’ is not writable.
Источник не был доставлен.
Save(Стриг)
Сохранить архив до предоставленного целевого файла.
public void Save(string destinationFileName)
Parameters
destinationFileName
string
Если указанное имя файла указывает на существующий файл, оно будет переписано.
Examples
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Exceptions
destinationFileName’ is null.
Заказчик не имеет требуемого разрешения на доступ.
destinationFileName’ является пустым, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу destinationFileName’ отрицается.
Определенный destinationFileName’, имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл в destinationFileName’ содержит колону (:) в середине строки.
SetSource(Stream)
Составьте контент, который должен быть компрессирован в архиве.
public void SetSource(Stream source)
Parameters
source
Stream
Входный поток для архива.
Examples
using (var archive = new GzipArchive())
{
archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
archive.Save("archive.gz");
}
SetSource(FileInfo)
Составьте контент, который должен быть компрессирован в архиве.
public void SetSource(FileInfo fileInfo)
Parameters
fileInfo
FileInfo
ссылка на файл, который должен быть компрессирован.
Examples
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("archive.gz");
}
SetSource(Стриг)
Составьте контент, который должен быть компрессирован в архиве.
public void SetSource(string path)
Parameters
path
string
Путь к файлу для компрессии.
Examples
Откройте архив из файла по пути и выведите его в
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Exceptions
path’ is null.
Заказчик не имеет требуемого разрешения на доступ.
path" пустая, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу path" отказывается.
Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл в path’ содержит колону (:) в середине строки.
SetSource(TarArchive)
Составьте контент, который должен быть компрессирован в архиве.
public void SetSource(TarArchive tarArchive)
Parameters
tarArchive
TarArchive
Архивы должны быть сжаты.
Examples
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");
}
}
Remarks
Используйте этот метод для составления совместного архива tar.gz.