Class Archive

Class Archive

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

Bu sınıf zip arşiv dosyasını temsil eder. Zip arşivlerini oluşturmak, çıkarmak veya güncellemek için kullanın.

public class Archive : IArchive, IDisposable

Kalıtım

objectArchive

Uygulamalar

IArchive, IDisposable

Kalıtılan Üyeler

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

Yapıcılar

Archive(ArchiveEntrySettings)

Aspose.Zip.Archive sınıfının yeni bir örneğini, girişleri için isteğe bağlı ayarlarla başlatır.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parametreler

newEntrySettings ArchiveEntrySettings

Yeni eklenen Aspose.Zip.ArchiveEntry öğeleri için kullanılan sıkıştırma ve şifreleme ayarları. Belirtilmezse, en yaygın Deflate sıkıştırması şifreleme olmadan kullanılacaktır.

Örnekler

Aşağıdaki örnek, varsayılan ayarlarla tek bir dosyayı sıkıştırmayı göstermektedir.

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

Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Aspose.Zip.Archive sınıfının yeni bir örneğini başlatır ve arşivden çıkarılabilecek giriş listesini oluşturur.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parametreler

sourceStream Stream

Arşivin kaynağı.

loadOptions ArchiveLoadOptions

Mevcut arşivi yüklemek için kullanılan seçenekler.

newEntrySettings ArchiveEntrySettings

Yeni eklenen Aspose.Zip.ArchiveEntry öğeleri için kullanılan sıkıştırma ve şifreleme ayarları. Belirtilmezse, en yaygın Deflate sıkıştırması şifreleme olmadan kullanılacaktır.

Örnekler

Aşağıdaki örnek, şifrelenmiş bir arşivi çıkarır ve ardından ilk girişi bir MemoryStream içine dekomprese eder.

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

Açıklamalar

Bu yapıcı herhangi bir girişi dekomprese etmez. Dekompresyon için Aspose.Zip.ArchiveEntry.Open(System.String) yöntemine bakın.

İstisnalar

ArgumentException

sourceStream erişilebilir değil.

InvalidDataException

AES için şifreleme başlığı WinZip sıkıştırma yöntemi ile çelişiyor.

Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Aspose.Zip.Archive sınıfının yeni bir örneğini başlatır ve arşivden çıkarılabilecek giriş listesini oluşturur.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parametreler

path string

Arşiv dosyasının tam veya göreceli yolu.

loadOptions ArchiveLoadOptions

Mevcut arşivi yüklemek için kullanılan seçenekler.

newEntrySettings ArchiveEntrySettings

Yeni eklenen Aspose.Zip.ArchiveEntry öğeleri için kullanılan sıkıştırma ve şifreleme ayarları. Belirtilmezse, en yaygın Deflate sıkıştırması şifreleme olmadan kullanılacaktır.

Örnekler

Aşağıdaki örnek, şifrelenmiş bir arşivi çıkarır ve ardından ilk girişi bir MemoryStream içine dekomprese eder.

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

Açıklamalar

Bu yapıcı herhangi bir girişi dekomprese etmez. Dekompresyon için Aspose.Zip.ArchiveEntry.Open(System.String) yöntemine bakın.

İstisnalar

ArgumentNullException

path null.

SecurityException

Arayanın erişim için gerekli izni yok.

ArgumentException

path boş, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.

UnauthorizedAccessException

path dosyasına erişim reddedildi.

PathTooLongException

Belirtilen path, dosya adı veya her ikisi sistem tanımlı maksimum uzunluğu aşıyor. Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden kısa olmalı ve dosya adları 260 karakterden kısa olmalıdır.

NotSupportedException

path içinde bir iki nokta (:) içeriyor.

FileNotFoundException

Dosya bulunamadı.

DirectoryNotFoundException

Belirtilen yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.

IOException

Dosya zaten açık.

InvalidDataException

Dosya bozulmuş.

Archive(string, string[], ArchiveLoadOptions)

Çok parçalı zip arşivinden Aspose.Zip.Archive sınıfının yeni bir örneğini başlatır ve arşivden çıkarılabilecek giriş listesini oluşturur.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parametreler

mainSegment string

Merkezi dizin ile çok parçalı arşivin son segmentinin yolu.

Genellikle bu segment *.zip uzantısına sahiptir ve diğerlerinden daha küçüktür.

segmentsInOrder string[]

Çok parçalı zip arşivinin son segmenti hariç her segmentin sırasına göre yolları.

Genellikle filename.z01, filename.z02, ..., filename.z(n-1) olarak adlandırılırlar.

loadOptions ArchiveLoadOptions

Mevcut arşivi yüklemek için kullanılan seçenekler.

Örnekler

Bu örnek, üç segmentten oluşan bir arşivi bir dizine çıkarır.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

İstisnalar

EndOfStreamException

Sağlanan dosyalar bozulduğundan ZIP başlıkları yüklenemiyor.

Özellikler

Entries

Arşivi oluşturan Aspose.Zip.ArchiveEntry türündeki girişleri alır.

public ReadOnlyCollection<archiveentry> Entries { get; }

Özellik Değeri

ReadOnlyCollection<ArchiveEntry&gt;

NewEntrySettings

Yeni eklenen Aspose.Zip.ArchiveEntry öğeleri için kullanılan sıkıştırma ve şifreleme ayarları.

public ArchiveEntrySettings NewEntrySettings { get; }

Özellik Değeri

ArchiveEntrySettings

Yöntemler

CreateEntries(DirectoryInfo, bool)

Verilen dizindeki tüm dosya ve dizinleri özyinelemeli olarak arşive ekler.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parametreler

directory DirectoryInfo

Sıkıştırılacak dizin.

includeRootDirectory bool

Kök dizinin kendisinin dahil edilip edilmeyeceğini belirtir.

Dönüş

Archive

Girişleri oluşturulmuş arşiv.

Örnekler

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

İstisnalar

DirectoryNotFoundException

directory için yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.

SecurityException

Arayanın directory erişimi için gerekli izni yoktur.

CreateEntries(string, bool)

Verilen dizindeki tüm dosya ve dizinleri özyinelemeli olarak arşive ekler.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parametreler

sourceDirectory string

Sıkıştırılacak dizin.

includeRootDirectory bool

Kök dizinin kendisinin dahil edilip edilmeyeceğini belirtir.

Dönüş

Archive

Girişleri oluşturulmuş arşiv.

Örnekler

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(string, string, bool, ArchiveEntrySettings)

Arşiv içinde tek bir giriş oluşturur.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parametreler

name string

Girişin adı.

path string

Yeni dosyanın tam adı veya sıkıştırılacak göreceli dosya adı.

openImmediately bool

Dosyanın hemen açılıp açılmayacağını belirtir, aksi takdirde dosya arşiv kaydedilirken açılır.

newEntrySettings ArchiveEntrySettings

Eklenen Aspose.Zip.ArchiveEntry öğesi için kullanılan sıkıştırma ve şifreleme ayarları.

Dönüş

ArchiveEntry

Zip girişi örneği.

Örnekler

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

Açıklamalar

Giriş adı yalnızca name parametresinde ayarlanır. path parametresinde sağlanan dosya adı, giriş adını etkilemez.

Dosya openImmediately parametresi ile hemen açılırsa, arşiv kaydedilene kadar engellenir.

İstisnalar

ArgumentNullException

path null.

SecurityException

Arayanın erişim için gerekli izni yok.

ArgumentException

path boş, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.

UnauthorizedAccessException

path dosyasına erişim reddedildi.

PathTooLongException

Belirtilen path, dosya adı veya her ikisi sistem tanımlı maksimum uzunluğu aşıyor. Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden kısa olmalı ve dosya adları 260 karakterden kısa olmalıdır.

NotSupportedException

path içinde bir iki nokta (:) içeriyor.

CreateEntry(string, Stream, ArchiveEntrySettings)

Arşiv içinde tek bir giriş oluşturur.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parametreler

name string

Girişin adı.

source Stream

Giriş için giriş akışı.

newEntrySettings ArchiveEntrySettings

Eklenen Aspose.Zip.ArchiveEntry öğesi için kullanılan sıkıştırma ve şifreleme ayarları.

Dönüş

ArchiveEntry

Zip girişi örneği.

Örnekler

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

Arşiv içinde tek bir giriş oluşturur.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parametreler

name string

Girişin adı.

fileInfo FileInfo

Sıkıştırılacak dosyanın meta verileri.

openImmediately bool

Dosyanın hemen açılıp açılmayacağını belirtir, aksi takdirde dosya arşiv kaydedilirken açılır.

newEntrySettings ArchiveEntrySettings

Eklenen Aspose.Zip.ArchiveEntry öğesi için kullanılan sıkıştırma ve şifreleme ayarları.

Dönüş

ArchiveEntry

Zip girişi örneği.

Örnekler

Her biri farklı şifreleme yöntemleri ve şifreler ile şifrelenmiş girişlerle arşiv oluşturun.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Açıklamalar

Giriş adı yalnızca name parametresinde ayarlanır. fileInfo parametresinde sağlanan dosya adı, giriş adını etkilemez.

Dosya openImmediately parametresi ile hemen açılırsa, arşiv kaydedilene kadar engellenir.

İstisnalar

UnauthorizedAccessException

fileInfo yalnızca okunabilir veya bir dizindir.

DirectoryNotFoundException

Belirtilen yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.

IOException

Dosya zaten açık.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Arşiv içinde tek bir giriş oluşturur.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parametreler

name string

Girişin adı.

source Stream

Giriş için giriş akışı.

newEntrySettings ArchiveEntrySettings

Eklenen Aspose.Zip.ArchiveEntry öğesi için kullanılan sıkıştırma ve şifreleme ayarları.

fileInfo FileSystemInfo

Sıkıştırılacak dosya veya klasörün meta verileri.

Dönüş

ArchiveEntry

Zip girişi örneği.

Örnekler

Şifreli girişle arşiv oluşturun.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Açıklamalar

Giriş adı yalnızca name parametresinde ayarlanır. fileInfo parametresinde sağlanan dosya adı, giriş adını etkilemez.

fileInfo dizin ise System.IO.DirectoryInfo'ye atıfta bulunabilir.

İstisnalar

InvalidOperationException

Hem source hem de fileInfo null veya source null ve fileInfo dizini temsil ediyorsa.

CreateEntry(string, Func<stream>, ArchiveEntrySettings)

Arşiv içinde tek bir giriş oluşturur.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parametreler

name string

Girişin adı.

streamProvider Func<Stream&gt;

Giriş için giriş akışını sağlayan yöntem.

newEntrySettings ArchiveEntrySettings

Eklenen Aspose.Zip.ArchiveEntry öğesi için kullanılan sıkıştırma ve şifreleme ayarları.

Dönüş

ArchiveEntry

Zip girişi örneği.

Örnekler

Şifreli girişle arşiv oluşturun.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Açıklamalar

Bu yöntem .NET Framework 4.0 ve üstü ile .NET Standard 2.0 sürümü içindir.

DeleteEntry(ArchiveEntry)

Girişler listesinden belirli bir girişin ilk örneğini kaldırır.

public Archive DeleteEntry(ArchiveEntry entry)

Parametreler

entry ArchiveEntry

Girişler listesinden kaldırılacak giriş.

Dönüş

Archive

Girişi silinmiş arşiv.

Örnekler

Son giriş hariç tüm girişleri nasıl kaldırabileceğinizi gösterir:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

İstisnalar

ObjectDisposedException

Arşiv atılmıştır.

DeleteEntry(int)

Girişler listesinden girişi indeksle kaldırır.

public Archive DeleteEntry(int entryIndex)

Parametreler

entryIndex int

Kaldırılacak girişin sıfır tabanlı indeksi.

Dönüş

Archive

Girişi silinmiş arşiv.

Örnekler

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

İstisnalar

ObjectDisposedException

Arşiv atılmıştır.

ArgumentOutOfRangeException

entryIndex 0’dan küçük veya entryIndex Entries sayısına eşit veya daha büyük.

Dispose()

Yönetilmeyen kaynakları serbest bırakma, ayırma veya sıfırlama ile ilgili uygulama tanımlı görevleri yerine getirir.

public void Dispose()

Dispose(bool)

Yönetilmeyen kaynakları serbest bırakma, ayırma veya sıfırlama ile ilgili uygulama tanımlı görevleri yerine getirir.

protected virtual void Dispose(bool disposing)

Parametreler

disposing bool

Yönetilen kaynakların atılıp atılmayacağını belirtir.

ExtractToDirectory(string)

Arşivdeki tüm dosyaları sağlanan dizine çıkarır.

public void ExtractToDirectory(string destinationDirectory)

Parametreler

destinationDirectory string

Çıkarılan dosyaların yerleştirileceği dizinin yolu.

Örnekler

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Açıklamalar

Eğer dizin mevcut değilse, oluşturulacaktır.

İstisnalar

ArgumentNullException

destinationDirectory null.

PathTooLongException

Belirtilen yol, dosya adı veya her ikisi sistem tanımlı maksimum uzunluğu aşıyor. Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden kısa olmalı ve dosya adları 260 karakterden kısa olmalıdır.

SecurityException

Arayanın mevcut dizine erişim için gerekli izni yok.

NotSupportedException

Eğer dizin mevcut değilse, yol bir sürücü etiketinin (“C:") parçası olmayan bir iki nokta karakteri (:) içeriyor.

ArgumentException

destinationDirectory sıfır uzunluğunda bir dize, yalnızca boşluk içeriyor veya bir veya daha fazla geçersiz karakter içeriyor. Geçersiz karakterleri sorgulamak için System.IO.Path.GetInvalidPathChars yöntemini kullanabilirsiniz. -veya- yol yalnızca bir iki nokta karakteri (:) ile ön eklenmiş veya yalnızca bir iki nokta karakteri içeriyorsa.

IOException

Belirtilen yol bir dosyadır. -veya- Ağ adı bilinmiyor.

InvalidDataException

Yanlış şifre sağlanmıştır. - veya - Arşiv bozulmuştur.

Save(Stream, ArchiveSaveOptions)

Arşivi sağlanan akışa kaydeder.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parametreler

outputStream Stream

Hedef akış.

saveOptions ArchiveSaveOptions

Arşiv kaydetme seçenekleri.

Örnekler

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

Açıklamalar

outputStream yazılabilir olmalıdır.

İstisnalar

ArgumentException

outputStream yazılabilir değil.

ObjectDisposedException

Arşiv atılmıştır.

Save(string, ArchiveSaveOptions)

Arşivi sağlanan hedef dosyaya kaydeder.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parametreler

destinationFileName string

Oluşturulacak arşivin yolu. Belirtilen dosya adı mevcut bir dosyayı işaret ediyorsa, üzerine yazılacaktır.

saveOptions ArchiveSaveOptions

Arşiv kaydetme seçenekleri.

Örnekler

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Açıklamalar

Bir arşivi yüklendiği aynı yola kaydetmek mümkündür. Ancak, bu yaklaşım geçici dosyaya kopyalama kullanıldığı için önerilmez.

İstisnalar

ArgumentNullException

destinationFileName null.

SecurityException

Arayanın erişim için gerekli izni yok.

ArgumentException

destinationFileName boş, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.

UnauthorizedAccessException

destinationFileName dosyasına erişim reddedildi.

PathTooLongException

Belirtilen destinationFileName, dosya adı veya her ikisi sistem tanımlı maksimum uzunluğu aşıyor. Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden kısa olmalı ve dosya adları 260 karakterden kısa olmalıdır.

NotSupportedException

destinationFileName içinde bir iki nokta (:) içeriyor.

FileNotFoundException

Dosya bulunamadı.

DirectoryNotFoundException

Belirtilen yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.

IOException

Dosya zaten açık.

SaveSplit(string, SplitArchiveSaveOptions)

Çok parçalı arşivi sağlanan hedef dizine kaydeder.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parametreler

destinationDirectory string

Arşiv segmentlerinin oluşturulacağı dizinin yolu.

options SplitArchiveSaveOptions

Arşiv kaydetme seçenekleri, dosya adı dahil.

Örnekler

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

Açıklamalar

Bu yöntem birkaç (n) dosya oluşturur filename.z01, filename.z02, ..., filename.z(n-1), filename.zip.

Mevcut arşivi çok parçalı hale getiremez.

İstisnalar

InvalidOperationException

Bu arşiv mevcut bir kaynaktan açılmıştır.

NotSupportedException

Bu arşiv hem XZ yöntemi ile sıkıştırılmış hem de şifrelenmiştir.

ArgumentNullException

destinationDirectory null.

SecurityException

Arayanın dizine erişim için gerekli izni yok.

ArgumentException

destinationDirectory geçersiz karakterler içeriyor, örneğin “, >, < veya |.

PathTooLongException

Belirtilen yol sistem tanımlı maksimum uzunluğu aşıyor.

ObjectDisposedException

Arşiv atılmıştır.

 Türkçe