Class GzipArchive

Class GzipArchive

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

Цей клас представляє файл архіву gzip. Використовуйте його для створення або витягування архівів gzip.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

Спадкування

objectGzipArchive

Реалізує

IArchive, IDisposable, IArchiveFileEntry

Спадковані члени

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

Зауваження

Алгоритм стиснення Gzip базується на алгоритмі DEFLATE, який є поєднанням LZ77 та кодування Хаффмана.

Конструктори

GzipArchive()

Ініціалізує новий екземпляр класу Aspose.Zip.Gzip.GzipArchive, підготовлений для стиснення.

public GzipArchive()

Приклади

Наступний приклад демонструє, як стиснути файл.

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

GzipArchive(Stream, bool)

Ініціалізує новий екземпляр класу Aspose.Zip.Gzip.GzipArchive, підготовлений для розпакування.

public GzipArchive(Stream sourceStream, bool parseHeader = false)

Параметри

sourceStream Stream

Джерело архіву.

parseHeader bool

Чи потрібно аналізувати заголовок потоку, щоб визначити властивості, включаючи ім’я. Має сенс лише для потоків, що підтримують переміщення.

Приклади

Відкриває архів з потоку та витягує його в MemoryStream

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

Зауваження

Цей конструктор не розпаковує. Див. метод Aspose.Zip.Gzip.GzipArchive.Open для розпакування.

GzipArchive(string, bool)

Ініціалізує новий екземпляр класу Aspose.Zip.Gzip.GzipArchive.

public GzipArchive(string path, bool parseHeader = false)

Параметри

path string

Шлях до файлу архіву.

parseHeader bool

Чи потрібно аналізувати заголовок потоку, щоб визначити властивості, включаючи ім’я. Має сенс лише для потоків, що підтримують переміщення.

Приклади

Відкриває архів з файлу за шляхом та витягує його в MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
  archive.Open().CopyTo(ms);

Зауваження

Цей конструктор не розпаковує. Див. метод Aspose.Zip.Gzip.GzipArchive.Open для розпакування.

Винятки

ArgumentNullException

path є null.

SecurityException

Викликач не має необхідних дозволів для доступу.

ArgumentException

path є порожнім, містить лише пробіли або містить недопустимі символи.

UnauthorizedAccessException

Доступ до файлу path заборонено.

PathTooLongException

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

NotSupportedException

Файл за path містить двокрапку (:) посередині рядка.

Властивості

Name

Ім’я оригінального файлу.

public string Name { get; }

Значення властивості

string

Методи

Dispose()

Виконує завдання, визначені програмою, пов’язані з звільненням, вивільненням або скиданням невпорядкованих ресурсів.

public void Dispose()

Dispose(bool)

Виконує завдання, визначені програмою, пов’язані з звільненням, вивільненням або скиданням невпорядкованих ресурсів.

protected virtual void Dispose(bool disposing)

Параметри

disposing bool

Чи потрібно звільнити керовані ресурси.

Extract(Stream)

Витягує архів у наданий потік.

public void Extract(Stream destination)

Параметри

destination Stream

Потік призначення. Повинен бути записуваним.

Приклади

using (var archive = new GzipArchive("archive.gz"))
{
     archive.Extract(httpResponseStream);
}

Винятки

ArgumentException

destination не підтримує запис.

InvalidDataException

Потік пошкоджений і не містить дійсних даних.

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 містить двокрапку (:) посередині рядка.

InvalidDataException

Потік пошкоджений і не містить дійсних даних.

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

Потік, що представляє вміст архіву.

Приклади

Витягує архів та копіює витягнутий вміст у файл.

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.CopyTo(extracted);`

Зауваження

Читання з потоку для отримання оригінального вмісту файлу. Див. розділ прикладів.

Save(Stream)

Зберігає архів у наданий потік.

public void Save(Stream outputStream)

Параметри

outputStream Stream

Потік призначення.

Приклади

Записує стиснені дані в потік відповіді http.

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

Зауваження

outputStream повинен бути записуваним.

Винятки

ArgumentException

outputStream не є записуваним.

InvalidOperationException

Джерело не було надано.

Save(string)

Зберігає архів у наданий файл призначення.

public void Save(string destinationFileName)

Параметри

destinationFileName string

Шлях архіву, який потрібно створити. Якщо вказане ім’я файлу вказує на існуючий файл, він буде перезаписаний.

Приклади

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

Винятки

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 (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

SetSource(FileInfo)

Встановлює вміст, який потрібно стиснути в архіві.

public void SetSource(FileInfo fileInfo)

Параметри

fileInfo FileInfo

Посилання на файл, який потрібно стиснути.

Приклади

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

SetSource(string)

Встановлює вміст, який потрібно стиснути в архіві.

public void SetSource(string path)

Параметри

path string

Шлях до файлу, який потрібно стиснути.

Приклади

Відкриває архів з файлу за шляхом та витягує його в MemoryStream

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

Винятки

ArgumentNullException

path є null.

SecurityException

Викликач не має необхідних дозволів для доступу.

ArgumentException

path є порожнім, містить лише пробіли або містить недопустимі символи.

UnauthorizedAccessException

Доступ до файлу path заборонено.

PathTooLongException

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

NotSupportedException

Файл за path містить двокрапку (:) посередині рядка.

SetSource(TarArchive)

Встановлює вміст, який потрібно стиснути в архіві.

public void SetSource(TarArchive tarArchive)

Параметри

tarArchive TarArchive

Tar-архів, який потрібно стиснути.

Приклади

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");
    }
}

Зауваження

Використовуйте цей метод, щоб створити спільний архів tar.gz.

 Українська