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