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

Наприклад, на платформах, заснованих на 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

Наприклад, на платформах, заснованих на 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.PopyTo(витягнуто);

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

Наприклад, на платформах, заснованих на 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.

 Українська