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.Archive подготвен за декомпресиране.

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

The 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

Пътят " е празен, съдържа само бели пространства или съдържа невалидни знаци.

UnauthorizedAccessException

code class=“paramref”>path.

PathTooLongException

code class=“paramref”>path", име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 знака, а имената на файла трябва да са по-малко от 260.

NotSupportedException

code class=“paramref”>path.

EndOfStreamException

Филмът е твърде кратък.

InvalidDataException

Данните в файла имат погрешен подпис.

Properties

Name

Името на оригиналния файл.

public string Name { get; }

стойност на имота

string

UncompressedSize

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

public ulong UncompressedSize { get; }

стойност на имота

ulong

Remarks

4GB, това свойство ще даде грешна стойност поради границата от 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

Пътят " е празен, съдържа само бели пространства или съдържа невалидни знаци.

UnauthorizedAccessException

code class=“paramref”>path.

PathTooLongException

code class=“paramref”>path", име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 знака, а имената на файла трябва да са по-малко от 260.

NotSupportedException

code class=“paramref”>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

code class=“paramref”>destinationFileName.

UnauthorizedAccessException

code class=“paramref”>destinationFileName.

PathTooLongException

code class=“paramref”>destinationFileName’, име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 символа, а имената на файла трябва да са по-малко от 260.

NotSupportedException

code class=“paramref”>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

Пътят " е празен, съдържа само бели пространства или съдържа невалидни знаци.

UnauthorizedAccessException

code class=“paramref”>path.

PathTooLongException

code class=“paramref”>path", име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 знака, а имената на файла трябва да са по-малко от 260.

NotSupportedException

code class=“paramref”>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.

 Български