Archive.Archive

Archive(ArchiveEntrySettings)

Menginisialisasi instance baru dariArchive kelas dengan pengaturan opsional untuk entri-entrinya.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParameterJenisKeterangan
newEntrySettingsArchiveEntrySettingsPengaturan kompresi dan enkripsi digunakan untuk yang baru ditambahkanArchiveEntry items. Jika tidak ditentukan, kompresi Deflate paling umum tanpa enkripsi akan digunakan.

Contoh

Contoh berikut menunjukkan cara mengompres satu file dengan pengaturan default.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Lihat juga


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Menginisialisasi instance baru dariArchive kelas dan menulis daftar entri dapat diekstraksi dari arsip.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterJenisKeterangan
sourceStreamStreamSumber arsip.
loadOptionsArchiveLoadOptionsOpsi untuk memuat arsip yang ada.
newEntrySettingsArchiveEntrySettingsPengaturan kompresi dan enkripsi digunakan untuk yang baru ditambahkanArchiveEntry items. Jika tidak ditentukan, kompresi Deflate paling umum tanpa enkripsi akan digunakan.

Pengecualian

pengecualiankondisi
ArgumentExceptionsourceStream tidak dapat dicari.
InvalidDataExceptionHeader enkripsi untuk AES bertentangan dengan metode kompresi WinZip.

Perkataan

Konstruktor ini tidak mendekompres entri apa pun. MelihatOpen metode dekompresi.

Contoh

Contoh berikut mengekstrak arsip terenkripsi, lalu mendekompres entri pertama ke aMemoryStream.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Lihat juga


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Menginisialisasi instance baru dariArchive kelas dan menulis daftar entri dapat diekstraksi dari arsip.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterJenisKeterangan
pathStringJalur yang sepenuhnya memenuhi syarat atau relatif ke file arsip.
loadOptionsArchiveLoadOptionsOpsi untuk memuat arsip yang ada.
newEntrySettingsArchiveEntrySettingsPengaturan kompresi dan enkripsi digunakan untuk yang baru ditambahkanArchiveEntry items. Jika tidak ditentukan, kompresi Deflate paling umum tanpa enkripsi akan digunakan.

Pengecualian

pengecualiankondisi
ArgumentNullExceptionpath adalah nol.
SecurityExceptionPenelepon tidak memiliki izin yang diperlukan untuk mengakses.
ArgumentExceptionItupath kosong, hanya berisi spasi putih, atau berisi karakter yang tidak valid.
UnauthorizedAccessExceptionAkses ke filepath ditolak.
PathTooLongExceptionYang ditentukanpath, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem. Misalnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.
NotSupportedExceptionBerkas dipath berisi titik dua (:) di tengah string.

Perkataan

Konstruktor ini tidak mendekompres entri apa pun. MelihatOpen metode dekompresi.

Contoh

Contoh berikut mengekstrak arsip terenkripsi, lalu mendekompres entri pertama ke aMemoryStream.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Lihat juga