Class GzipArchive
Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)
Цей клас представляє файл архіву gzip. Використовуйте його для створення або витягування архівів gzip.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
Спадкування
Реалізує
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 для розпакування.
Винятки
path
є null.
Викликач не має необхідних дозволів для доступу.
path
є порожнім, містить лише пробіли або містить недопустимі символи.
Доступ до файлу path
заборонено.
Вказаний path
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах Windows шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за path
містить двокрапку (:) посередині рядка.
Властивості
Name
Ім’я оригінального файлу.
public string Name { get; }
Значення властивості
Методи
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);
}
Винятки
destination
не підтримує запис.
Потік пошкоджений і не містить дійсних даних.
Extract(string)
Витягує архів у файл за шляхом.
public FileInfo Extract(string path)
Параметри
path
string
Шлях до файлу призначення. Якщо файл вже існує, він буде перезаписаний.
Повертає
Інформація про витягнутий файл.
Винятки
path
є null.
Викликач не має необхідних дозволів для доступу.
path
є порожнім, містить лише пробіли або містить недопустимі символи.
Доступ до файлу path
заборонено.
Вказаний path
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах Windows шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за path
містить двокрапку (:) посередині рядка.
Потік пошкоджений і не містить дійсних даних.
ExtractToDirectory(string)
Витягує вміст архіву в наданий каталог.
public void ExtractToDirectory(string destinationDirectory)
Параметри
destinationDirectory
string
Шлях до каталогу, куди будуть поміщені витягнуті файли.
Зауваження
Якщо каталог не існує, він буде створений.
Винятки
destinationDirectory
є null.
Вказаний шлях, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах Windows шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Викликач не має необхідних дозволів для доступу до існуючого каталогу.
Якщо каталог не існує, шлях містить символ двокрапки (:) який не є частиною мітки диска (“C:").
destinationDirectory
є рядком нульової довжини, містить лише пробіли або містить один або кілька недопустимих символів. Ви можете запитати недопустимі символи, використовуючи метод System.IO.Path.GetInvalidPathChars.
-або- шлях починається з або містить лише символ двокрапки (:).
Каталог, вказаний шляхом, є файлом. -або- Ім’я мережі не відомо.
Open()
Відкриває архів для витягування та надає потік з вмістом архіву.
public Stream Open()
Повертає
Потік, що представляє вміст архіву.
Приклади
Витягує архів та копіює витягнутий вміст у файл.
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
повинен бути записуваним.
Винятки
outputStream
не є записуваним.
Джерело не було надано.
Save(string)
Зберігає архів у наданий файл призначення.
public void Save(string destinationFileName)
Параметри
destinationFileName
string
Шлях архіву, який потрібно створити. Якщо вказане ім’я файлу вказує на існуючий файл, він буде перезаписаний.
Приклади
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Винятки
destinationFileName
є null.
Викликач не має необхідних дозволів для доступу.
destinationFileName
є порожнім, містить лише пробіли або містить недопустимі символи.
Доступ до файлу destinationFileName
заборонено.
Вказаний destinationFileName
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах Windows шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за 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");
}
Винятки
path
є null.
Викликач не має необхідних дозволів для доступу.
path
є порожнім, містить лише пробіли або містить недопустимі символи.
Доступ до файлу path
заборонено.
Вказаний path
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах Windows шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за 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.