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
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
path
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
path
kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.
Akses ke file path
ditolak.
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.
File di path
mengandung titik dua (:) di tengah string.
Properti
Name
Nama file asli.
public string Name { get; }
Nilai Properti
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
destination
tidak mendukung penulisan.
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
Info file yang diekstrak.
Pengecualian
path
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
path
kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.
Akses ke file path
ditolak.
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.
File di path
mengandung titik dua (:) di tengah string.
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
destinationDirectory
adalah null.
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.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori yang ada.
Jika direktori tidak ada, jalur mengandung karakter titik dua (:) yang bukan bagian dari label drive (“C:").
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 (:).
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 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
outputStream
tidak dapat ditulis.
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
destinationFileName
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
destinationFileName
kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.
Akses ke file destinationFileName
ditolak.
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.
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
path
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
path
kosong, hanya berisi spasi putih, atau mengandung karakter tidak valid.
Akses ke file path
ditolak.
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.
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.