Class GzipArchive
Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)
Denna klass representerar en gzip-arkivfil. Använd den för att komprimera eller extrahera gzip-arkiv.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
Arv
Implementerar
IArchive, IDisposable, IArchiveFileEntry
Ärvda Medlemmar
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Kommentarer
Gzip-komprimeringsalgoritmen är baserad på DEFLATE-algoritmen, som är en kombination av LZ77 och Huffman-kodning.
Konstruktörer
GzipArchive()
Initierar en ny instans av Aspose.Zip.Gzip.GzipArchive-klassen för komprimering.
public GzipArchive()
Exempel
Följande exempel visar hur man komprimerar en fil.
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
GzipArchive(Stream, bool)
Initierar en ny instans av Aspose.Zip.Gzip.GzipArchive-klassen för dekomprimering.
public GzipArchive(Stream sourceStream, bool parseHeader = false)
Parametrar
sourceStream
Stream
Källan för arkivet.
parseHeader
bool
Om strömhuvudet ska tolkas för att fastställa egenskaper, inklusive namn. Gör mening för sökbar ström endast.
Exempel
Öppna ett arkiv från en ström och extrahera det till en MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
archive.Open().CopyTo(ms);
Kommentarer
Denna konstruktor dekomprimerar inte. Se Aspose.Zip.Gzip.GzipArchive.Open-metoden för dekomprimering.
GzipArchive(string, bool)
Initierar en ny instans av Aspose.Zip.Gzip.GzipArchive-klassen.
public GzipArchive(string path, bool parseHeader = false)
Parametrar
path
string
Sökvägen till arkivfilen.
parseHeader
bool
Om strömhuvudet ska tolkas för att fastställa egenskaper, inklusive namn. Gör mening för sökbar ström endast.
Exempel
Öppna ett arkiv från fil med sökväg och extrahera det till en MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
archive.Open().CopyTo(ms);
Kommentarer
Denna konstruktor dekomprimerar inte. Se Aspose.Zip.Gzip.GzipArchive.Open-metoden för dekomprimering.
Undantag
path
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
path
är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till fil path
nekas.
Den angivna path
, filnamn eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
Fil på path
innehåller ett kolon (:) i mitten av strängen.
Egenskaper
Name
Namn på originalfilen.
public string Name { get; }
Egenskapsvärde
Metoder
Dispose()
Utför applikationsdefinierade uppgifter kopplade till att frigöra, släppa eller återställa icke-hanterade resurser.
public void Dispose()
Dispose(bool)
Utför applikationsdefinierade uppgifter kopplade till att frigöra, släppa eller återställa icke-hanterade resurser.
protected virtual void Dispose(bool disposing)
Parametrar
disposing
bool
Om hanterade resurser ska frigöras.
Extract(Stream)
Extraherar arkivet till den angivna strömmen.
public void Extract(Stream destination)
Parametrar
destination
Stream
Målström. Måste vara skrivbar.
Exempel
using (var archive = new GzipArchive("archive.gz"))
{
archive.Extract(httpResponseStream);
}
Undantag
destination
stöder inte skrivning.
Strömmen är korrupt och innehåller inte giltiga data.
Extract(string)
Extraherar arkivet till filen enligt sökvägen.
public FileInfo Extract(string path)
Parametrar
path
string
Sökvägen till destinationsfilen. Om filen redan finns kommer den att skrivas över.
Returnerar
Information om den extraherade filen.
Undantag
path
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
path
är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till fil path
nekas.
Den angivna path
, filnamn eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
Fil på path
innehåller ett kolon (:) i mitten av strängen.
Strömmen är korrupt och innehåller inte giltiga data.
ExtractToDirectory(string)
Extraherar innehållet i arkivet till den angivna katalogen.
public void ExtractToDirectory(string destinationDirectory)
Parametrar
destinationDirectory
string
Sökvägen till katalogen där de extraherade filerna ska placeras.
Kommentarer
Om katalogen inte finns kommer den att skapas.
Undantag
destinationDirectory
är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst till befintlig katalog.
Om katalogen inte finns innehåller sökvägen ett kolon-tecken (:) som inte är en del av en enhetsbeteckning (“C:").
destinationDirectory
är en sträng med noll längd, innehåller endast vita tecken eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken genom att använda metoden System.IO.Path.GetInvalidPathChars.
-eller- sökvägen är förprefixed med eller innehåller endast ett kolon-tecken (:).
Katalogen som anges av sökvägen är en fil. -eller- Det nätverksnamnet är inte känt.
Open()
Öppnar arkivet för extrahering och tillhandahåller en ström med arkivinnehåll.
public Stream Open()
Returnerar
Strömmen som representerar innehållet i arkivet.
Exempel
Extraherar arkivet och kopierar det extraherade innehållet till filström.
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);
}
}
Du kan använda metoden Stream.CopyTo för .NET 4.0 och högre: `unpacked.CopyTo(extracted);`
Kommentarer
Läs från strömmen för att få det ursprungliga innehållet i filen. Se avsnittet med exempel.
Save(Stream)
Sparar arkivet till den angivna strömmen.
public void Save(Stream outputStream)
Parametrar
outputStream
Stream
Målström.
Exempel
Skriver komprimerad data till http-svarström.
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
Kommentarer
outputStream
måste vara skrivbar.
Undantag
outputStream
är inte skrivbar.
Källa har inte angivits.
Save(string)
Sparar arkivet till den angivna destinationsfilen.
public void Save(string destinationFileName)
Parametrar
destinationFileName
string
Sökvägen till arkivet som ska skapas. Om det angivna filnamnet pekar på en befintlig fil kommer den att skrivas över.
Exempel
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Undantag
destinationFileName
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
destinationFileName
är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till fil destinationFileName
nekas.
Den angivna destinationFileName
, filnamn eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
Fil på destinationFileName
innehåller ett kolon (:) i mitten av strängen.
SetSource(Stream)
Sätter innehållet som ska komprimeras inom arkivet.
public void SetSource(Stream source)
Parametrar
source
Stream
Indataström för arkivet.
Exempel
using (var archive = new GzipArchive())
{
archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
archive.Save("archive.gz");
}
SetSource(FileInfo)
Sätter innehållet som ska komprimeras inom arkivet.
public void SetSource(FileInfo fileInfo)
Parametrar
fileInfo
FileInfo
Referens till en fil som ska komprimeras.
Exempel
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("archive.gz");
}
SetSource(string)
Sätter innehållet som ska komprimeras inom arkivet.
public void SetSource(string path)
Parametrar
path
string
Sökväg till filen som ska komprimeras.
Exempel
Öppna ett arkiv från fil med sökväg och extrahera det till en MemoryStream
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Undantag
path
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
path
är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till fil path
nekas.
Den angivna path
, filnamn eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
Fil på path
innehåller ett kolon (:) i mitten av strängen.
SetSource(TarArchive)
Sätter innehållet som ska komprimeras inom arkivet.
public void SetSource(TarArchive tarArchive)
Parametrar
tarArchive
TarArchive
Tar-arkiv som ska komprimeras.
Exempel
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");
}
}
Kommentarer
Använd denna metod för att komponera gemensamt tar.gz-arkiv.