Class GzipArchive

Class GzipArchive

Название пространства: Aspose.Zip.Gzip Ассоциация: Aspose.Zip.dll (25.5.0)

Этот класс представляет собой файл архива gzip. Используйте его для составления или экстракции архивов gzip.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

Inheritance

object GzipArchive

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

ArgumentNullException

sourceStream’ is null.

EndOfStreamException

sourceStream’ is too short.

InvalidDataException

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

ArgumentNullException

path’ is null.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

path" пустая, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу path" отказывается.

PathTooLongException

Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

Файл в path’ содержит колону (:) в середине строки.

EndOfStreamException

Файл слишком короткий.

InvalidDataException

Данные в файле имеют неправильный подпись.

Properties

Name

Название оригинального файла.

public string Name { get; }

Стоимость недвижимости

string

UncompressedSize

Получается размер оригинального файла.

public ulong UncompressedSize { get; }

Стоимость недвижимости

ulong

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

ArgumentException

destination’ does not support writing.

InvalidDataException

Поток коррумпирован и не содержит валидных данных.

Extract(Стриг)

Экстрактируйте архив в файл по пути.

public FileInfo Extract(string path)

Parameters

path string

Путь к целевому файлу.Если файл уже существует, он будет переписан.

Returns

FileInfo

Информация о извлеченных файлах.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

path" пустая, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу path" отказывается.

PathTooLongException

Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

Файл в path’ содержит колону (:) в середине строки.

InvalidDataException

Поток коррумпирован и не содержит валидных данных.

ExtractToDirectory(Стриг)

Экстракт содержимого архива в предоставленный каталог.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Путь к каталогу для размещения извлеченных файлов.

Remarks

Если каталог не существует, он будет создан.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Например, на платформах, основанных на Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

SecurityException

Заклинатель не имеет требуемого разрешения на доступ к существующему каталогу.

NotSupportedException

Если каталог не существует, то маршрут содержит колонный характер (:) который не является частью дисковой маркировки («C:»).

ArgumentException

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 (:).

IOException

Каталог, указанный по маршруту, является файлом. -или- Название сети неизвестно.

Open()

Откроет архив для экстракции и обеспечивает поток с содержанием архива.

public Stream Open()

Returns

Stream

Проток, который представляет содержимое архива.

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

ArgumentException

outputStream’ is not writable.

InvalidOperationException

Источник не был доставлен.

Save(Стриг)

Сохранить архив до предоставленного целевого файла.

public void Save(string destinationFileName)

Parameters

destinationFileName string

Если указанное имя файла указывает на существующий файл, оно будет переписано.

Examples

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

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

destinationFileName’ является пустым, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу destinationFileName’ отрицается.

PathTooLongException

Определенный destinationFileName’, имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

Файл в 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

ArgumentNullException

path’ is null.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

path" пустая, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу path" отказывается.

PathTooLongException

Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

Файл в 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.

 Русский