Archive.Archive

Archive(ArchiveEntrySettings)

Yeni bir örneğini başlatır.Archive girişleri için isteğe bağlı ayarlara sahip sınıf.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParametreTipTanım
newEntrySettingsArchiveEntrySettingsYeni eklenenler için kullanılan sıkıştırma ve şifreleme ayarlarıArchiveEntry items. Belirtilmezse, şifreleme olmadan en yaygın Deflate sıkıştırması kullanılır.

Örnekler

Aşağıdaki örnek, tek bir dosyanın varsayılan ayarlarla nasıl sıkıştırılacağını gösterir.

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

Ayrıca bakınız


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Yeni bir örneğini başlatır.Archive class ve composes girişleri listesi arşivden çıkarılabilir.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParametreTipTanım
sourceStreamStreamArşivin kaynağı.
loadOptionsArchiveLoadOptionsMevcut arşivi yüklemek için seçenekler.
newEntrySettingsArchiveEntrySettingsYeni eklenenler için kullanılan sıkıştırma ve şifreleme ayarlarıArchiveEntry items. Belirtilmezse, şifreleme olmadan en yaygın Deflate sıkıştırması kullanılır.

istisnalar

istisnaşart
ArgumentExceptionsourceStream aranmaz.
InvalidDataExceptionAES için şifreleme başlığı, WinZip sıkıştırma yöntemiyle çelişiyor.

Notlar

Bu yapıcı herhangi bir girdiyi açmaz. GörmekOpen açma yöntemi.

Örnekler

Aşağıdaki örnek, şifrelenmiş bir arşivi ayıklar, ardından ilk girdiyi sıkıştırılmış bir dosyaya açar.Bellek Akışı.

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

Ayrıca bakınız


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Yeni bir örneğini başlatır.Archive class ve composes girişleri listesi arşivden çıkarılabilir.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParametreTipTanım
pathStringArşiv dosyasının tam veya göreli yolu.
loadOptionsArchiveLoadOptionsMevcut arşivi yüklemek için seçenekler.
newEntrySettingsArchiveEntrySettingsYeni eklenenler için kullanılan sıkıştırma ve şifreleme ayarlarıArchiveEntry items. Belirtilmezse, şifreleme olmadan en yaygın Deflate sıkıştırması kullanılır.

istisnalar

istisnaşart
ArgumentNullExceptionpath boş.
SecurityExceptionArayan, erişim için gerekli izne sahip değil.
ArgumentExceptionbupath boş, yalnızca beyaz boşluklar içeriyor veya geçersiz karakterler içeriyor.
UnauthorizedAccessExceptiondosyaya erişimpath engellendi.
PathTooLongExceptionBelirtilenpath, dosya adı veya her ikisi de sistem tarafından tanımlanan maksimum uzunluğu aşıyor. Örneğin, Windows tabanlı platformlarda yollar 248 karakterden, dosya adları ise 260 karakterden kısa olmalıdır.
NotSupportedExceptiondosyapath dizenin ortasında iki nokta üst üste (:) içerir.

Notlar

Bu yapıcı herhangi bir girdiyi açmaz. GörmekOpen açma yöntemi.

Örnekler

Aşağıdaki örnek, şifrelenmiş bir arşivi ayıklar, ardından ilk girdiyi sıkıştırılmış bir dosyaya açar.Bellek Akışı.

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

Ayrıca bakınız