Class GzipArchive

Class GzipArchive

Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)

Kelas ini mewakili file arsip gzip. Gunakan untuk menyusun atau mengekstrak arsip gzip.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

Pewarisan

objectGzipArchive

Mengimplementasikan

IArchive, IDisposable, IArchiveFileEntry

Anggota yang Dwarisi

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Catatan

Algoritma kompresi Gzip didasarkan pada algoritma DEFLATE, yang merupakan kombinasi dari LZ77 dan pengkodean Huffman.

Konstruktor

GzipArchive()

Menginisialisasi instance baru dari kelas Aspose.Zip.Gzip.GzipArchive yang disiapkan untuk kompresi.

public GzipArchive()

Contoh

Contoh berikut menunjukkan cara mengompres file.

using (GzipArchive archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

GzipArchive(Stream, bool)

Menginisialisasi instance baru dari kelas Aspose.Zip.Gzip.GzipArchive yang disiapkan untuk dekompresi.

public GzipArchive(Stream sourceStream, bool parseHeader = false)

Parameter

sourceStream Stream

Sumber arsip.

parseHeader bool

Apakah akan mem-parsing header stream untuk mengetahui properti, termasuk nama. Hanya masuk akal untuk stream yang dapat dicari.

Contoh

Buka arsip dari stream dan ekstrak ke MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
  archive.Open().CopyTo(ms);

Catatan

Konstruktor ini tidak melakukan dekompresi. Lihat metode Aspose.Zip.Gzip.GzipArchive.Open untuk dekompresi.

GzipArchive(string, bool)

Menginisialisasi instance baru dari kelas Aspose.Zip.Gzip.GzipArchive.

public GzipArchive(string path, bool parseHeader = false)

Parameter

path string

Jalur ke file arsip.

parseHeader bool

Apakah akan mem-parsing header stream untuk mengetahui properti, termasuk nama. Hanya masuk akal untuk stream yang dapat dicari.

Contoh

Buka arsip dari file berdasarkan jalur dan ekstrak ke MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
  archive.Open().CopyTo(ms);

Catatan

Konstruktor ini tidak melakukan dekompresi. Lihat metode Aspose.Zip.Gzip.GzipArchive.Open untuk dekompresi.

Pengecualian

ArgumentNullException

path adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

path kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.

UnauthorizedAccessException

Akses ke file path ditolak.

PathTooLongException

path, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, di platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di path mengandung titik dua (:) di tengah string.

Properti

Name

Nama file asli.

public string Name { get; }

Nilai Properti

string

Metode

Dispose()

Melakukan tugas yang ditentukan oleh aplikasi yang terkait dengan membebaskan, melepaskan, atau mengatur ulang sumber daya yang tidak dikelola.

public void Dispose()

Dispose(bool)

Melakukan tugas yang ditentukan oleh aplikasi yang terkait dengan membebaskan, melepaskan, atau mengatur ulang sumber daya yang tidak dikelola.

protected virtual void Dispose(bool disposing)

Parameter

disposing bool

Apakah sumber daya yang dikelola harus dibebaskan.

Extract(Stream)

Mengekstrak arsip ke stream yang disediakan.

public void Extract(Stream destination)

Parameter

destination Stream

Stream tujuan. Harus dapat ditulis.

Contoh

using (var archive = new GzipArchive("archive.gz"))
{
     archive.Extract(httpResponseStream);
}

Pengecualian

ArgumentException

destination tidak mendukung penulisan.

InvalidDataException

Stream rusak dan tidak berisi data yang valid.

Extract(string)

Mengekstrak arsip ke file berdasarkan jalur.

public FileInfo Extract(string path)

Parameter

path string

Jalur ke file tujuan. Jika file sudah ada, akan ditimpa.

Mengembalikan

FileInfo

Info file yang diekstrak.

Pengecualian

ArgumentNullException

path adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

path kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.

UnauthorizedAccessException

Akses ke file path ditolak.

PathTooLongException

path, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, di platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di path mengandung titik dua (:) di tengah string.

InvalidDataException

Stream rusak dan tidak berisi data yang valid.

ExtractToDirectory(string)

Mengekstrak konten arsip ke direktori yang disediakan.

public void ExtractToDirectory(string destinationDirectory)

Parameter

destinationDirectory string

Jalur ke direktori untuk menempatkan file yang diekstrak.

Catatan

Jika direktori tidak ada, akan dibuat.

Pengecualian

ArgumentNullException

destinationDirectory adalah null.

PathTooLongException

path, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, di platform berbasis Windows, jalur harus kurang dari 248 karakter dan nama file harus kurang dari 260 karakter.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori yang ada.

NotSupportedException

Jika direktori tidak ada, jalur mengandung karakter titik dua (:) yang bukan bagian dari label drive (“C:").

ArgumentException

destinationDirectory adalah string dengan panjang nol, hanya berisi spasi putih, atau mengandung satu atau lebih karakter tidak valid. Anda dapat menanyakan karakter tidak valid dengan menggunakan metode System.IO.Path.GetInvalidPathChars. -atau- jalur diawali dengan, atau hanya mengandung, karakter titik dua (:).

IOException

Direktori yang ditentukan oleh jalur adalah file. -atau- Nama jaringan tidak dikenal.

Open()

Membuka arsip untuk ekstraksi dan menyediakan stream dengan konten arsip.

public Stream Open()

Mengembalikan

Stream

Stream yang mewakili konten arsip.

Contoh

Mengekstrak arsip dan menyalin konten yang diekstrak ke stream file.

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);
    }            
}

Anda dapat menggunakan metode Stream.CopyTo untuk .NET 4.0 dan yang lebih tinggi: `unpacked.CopyTo(extracted);`

Catatan

Baca dari stream untuk mendapatkan konten asli file. Lihat bagian contoh.

Save(Stream)

Menyimpan arsip ke stream yang disediakan.

public void Save(Stream outputStream)

Parameter

outputStream Stream

Stream tujuan.

Contoh

Menulis data terkompresi ke stream respons http.

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

Catatan

outputStream harus dapat ditulis.

Pengecualian

ArgumentException

outputStream tidak dapat ditulis.

InvalidOperationException

Sumber belum disuplai.

Save(string)

Menyimpan arsip ke file tujuan yang disediakan.

public void Save(string destinationFileName)

Parameter

destinationFileName string

Jalur arsip yang akan dibuat. Jika nama file yang ditentukan mengarah ke file yang sudah ada, file tersebut akan ditimpa.

Contoh

using (var archive = new GzipArchive())
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

Pengecualian

ArgumentNullException

destinationFileName adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

destinationFileName kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.

UnauthorizedAccessException

Akses ke file destinationFileName ditolak.

PathTooLongException

destinationFileName, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, di platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di destinationFileName mengandung titik dua (:) di tengah string.

SetSource(Stream)

Mengatur konten yang akan dikompres dalam arsip.

public void SetSource(Stream source)

Parameter

source Stream

Stream input untuk arsip.

Contoh

using (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

SetSource(FileInfo)

Mengatur konten yang akan dikompres dalam arsip.

public void SetSource(FileInfo fileInfo)

Parameter

fileInfo FileInfo

Referensi ke file yang akan dikompres.

Contoh

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.gz");
}

SetSource(string)

Mengatur konten yang akan dikompres dalam arsip.

public void SetSource(string path)

Parameter

path string

Jalur ke file yang akan dikompres.

Contoh

Buka arsip dari file berdasarkan jalur dan ekstrak ke MemoryStream

using (var archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

Pengecualian

ArgumentNullException

path adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

path kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.

UnauthorizedAccessException

Akses ke file path ditolak.

PathTooLongException

path, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, di platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di path mengandung titik dua (:) di tengah string.

SetSource(TarArchive)

Mengatur konten yang akan dikompres dalam arsip.

public void SetSource(TarArchive tarArchive)

Parameter

tarArchive TarArchive

Arsip Tar yang akan dikompres.

Contoh

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");
    }
}

Catatan

Gunakan metode ini untuk menyusun arsip tar.gz gabungan.

 Indonesia