Class Archive

Class Archive

İsim alanı : Aspose.Zip Toplama: Aspose.Zip.dll (25.5.0)

Bu sınıf bir zip arşivi dosyasını temsil eder. zip dosyalarını oluşturmak, çıkarmak veya güncelleştirmek için kullanın.

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

mirasçı üyeleri

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

Constructors

Archive(ArchiveEntrySettings)

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

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

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

Examples

Aşağıdaki örnek, varsayılan ayarlarla tek bir dosyayı 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);
    }
}

Archive(Akış, ArchiveLoadOptions, ArchiveEntrySettings)

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

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

Parameters

sourceStream Stream

Arşiv kaynağıdır.

loadOptions ArchiveLoadOptions

Mevcut arşivleri yükleme seçenekleri.

newEntrySettings ArchiveEntrySettings

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

Examples

Aşağıdaki örnek şifreli bir arşiv çıkarır, sonra ilk girişini dekompres 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);
    }
}

Remarks

Bu yapımcı herhangi bir giriş dekompres etmez. dekompres için Aspose.Zip.ArchiveEntry.Open(System.String) yöntemi bakın.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

AES için şifreleme başlığı WinZip kompresyon yöntemi ile çelişiyor.

Archive(Etiket Arşivi, ArchiveLoadOptions, ArchiveEntrySettings)

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

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

Parameters

path string

Tamamen nitelikli veya arşiv dosyasına ilişkin yol.

loadOptions ArchiveLoadOptions

Mevcut arşivleri yükleme seçenekleri.

newEntrySettings ArchiveEntrySettings

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

Examples

Aşağıdaki örnek şifreli bir arşiv çıkarır, sonra ilk girişini dekompres 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);
    }
}

Remarks

Bu yapımcı herhangi bir giriş dekompres etmez. dekompres için Aspose.Zip.ArchiveEntry.Open(System.String) yöntemi bakın.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Müşteri, gerekli izinleri almamaktadır.

ArgumentException

path’ boş, yalnızca beyaz alanlar içerir veya geçersiz karakterler içerir.

UnauthorizedAccessException

path" dosyasına erişim reddedilir.

PathTooLongException

Belirlenen path’, dosya adı, ya da her ikisi de sistem tarafından tanımlanan maksimum uzunluğu aşmaktadır. Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden az olmalıdır ve dosya isimleri 260 karakterden az olmalıdır.

NotSupportedException

path’daki dosya, satırın ortasında bir sütun (:) içerir.

FileNotFoundException

Dosya bulunamadı.

DirectoryNotFoundException

Belirlenmiş yol geçersizdir, örneğin haritalmamış bir sürücü üzerinde olması.

IOException

Dosya zaten açıktır.

InvalidDataException

Dosya bozulmuştur.

Archive(String ve String[…], Arşiv Seçenekleri)

Multi-volume zip arşivinden Aspose.Zip.Archive sınıfının yeni bir örneğini başlatır ve arşivden çıkarılabilecek bir giriş listesi oluşturur.

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

Parameters

mainSegment string

Merkez dizinle çok boyutlu arşivin son segmentine giden yol.

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

segmentsInOrder string […]

Yürüyüşler her segment ama son multi-volume zip arşivi sırasına uymak.

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

loadOptions ArchiveLoadOptions

Mevcut arşivleri yükleme seçenekleri.

Examples

Bu örnek, bir dizine üç bölümlü bir arşiv çıkarır.

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

Exceptions

EndOfStreamException

ZIP başlıkları yüklemeyin çünkü sağlanan dosyalar bozulmuştur.

Properties

Entries

Arşiv oluşturan Aspose.Zip.ArchiveEntry tipi girişleri alır.

public ReadOnlyCollection<archiveentry> Entries { get; }

Mülkiyet Değer

ReadOnlyCollection &lt için; ArchiveEntry >

NewEntrySettings

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

public ArchiveEntrySettings NewEntrySettings { get; }

Mülkiyet Değer

ArchiveEntrySettings

Methods

CreateEntries(Etiket Arşivi: bool)

Tüm dosyaları ve dizinleri arşivde tekrar tekrar ekleyin.

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

Parameters

directory DirectoryInfo

Kompres için bir dizin.

includeRootDirectory bool

Kök dizininin kendisini içerip içermediğini gösterir.

Returns

Archive

Arşiv içeriği hazırlanmıştır.

Examples

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

Exceptions

DirectoryNotFoundException

directory’ye giden yol geçersizdir, örneğin haritalmamış bir sürücü üzerinde olması gibi.

SecurityException

Çağrıcı, directory’ye erişmek için gerekli izin vermez.

CreateEntries(Çerçeve , Bool)

Tüm dosyaları ve dizinleri arşivde tekrar tekrar ekleyin.

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

Parameters

sourceDirectory string

Kompres için bir dizin.

includeRootDirectory bool

Kök dizininin kendisini içerip içermediğini gösterir.

Returns

Archive

Arşiv içeriği hazırlanmıştır.

Examples

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

CreateEntry(string, string, bool, arşivEntrySettings)

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

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

Parameters

name string

Giriş Adı

path string

Yeni dosyanın tam olarak nitelikli adı veya sıkıştırılacak ilgili dosya adı.

openImmediately bool

Gerçek şu ki, dosyayı hemen açtığınızda, aksi takdirde dosyayı arşiv kaydında açın.

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Zip giriş noktası.

Examples

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

Remarks

Parametrelerde belirtilen dosya adı yalnızca giriş adı içinde ayarlanır.

Dosya parametrelerle hemen açılırsa, arşiv kaydedilene kadar kilitlenir.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Müşteri, gerekli izinleri almamaktadır.

ArgumentException

path’ boş, yalnızca beyaz alanlar içerir veya geçersiz karakterler içerir.

UnauthorizedAccessException

path" dosyasına erişim reddedilir.

PathTooLongException

Belirlenen path’, dosya adı, ya da her ikisi de sistem tarafından tanımlanan maksimum uzunluğu aşmaktadır. Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden az olmalıdır ve dosya isimleri 260 karakterden az olmalıdır.

NotSupportedException

path’daki dosya, satırın ortasında bir sütun (:) içerir.

CreateEntry(string, akış, arşivEntrySettings)

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

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

Parameters

name string

Giriş Adı

source Stream

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

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Zip giriş noktası.

Examples

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(çubuk, FileInfo, bool, ArchiveEntrySettings)

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

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

Parameters

name string

Giriş Adı

fileInfo FileInfo

Dosya metadata sıkıştırılmalıdır.

openImmediately bool

Gerçek şu ki, dosyayı hemen açtığınızda, aksi takdirde dosyayı arşiv kaydında açın.

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Zip giriş noktası.

Examples

Arşivleri farklı şifreleme yöntemleri ve şifrelerle şifrelenmiş girişlerle birleştirin.

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

Remarks

Parametrelerde belirtilen dosya adı yalnızca giriş adı içinde ayarlanır.

Dosya parametrelerle hemen açılırsa, arşiv kaydedilene kadar kilitlenir.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Belirlenmiş yol geçersizdir, örneğin haritalmamış bir sürücü üzerinde olması.

IOException

Dosya zaten açıktır.

CreateEntry(string, akış, ArchiveEntrySettings, FileSystemInfo)

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

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

Parameters

name string

Giriş Adı

source Stream

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

newEntrySettings ArchiveEntrySettings

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

fileInfo FileSystemInfo

Dosya veya klasör metadata sıkıştırılmalıdır.

Returns

ArchiveEntry

Zip giriş noktası.

Examples

Şifreli giriş ile 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);
    }
}

Remarks

Parametrelerde belirtilen dosya adı yalnızca giriş adı içinde ayarlanır.

Eğer giriş bir dizin ise System.IO.DirectoryInfo adresine başvurabilirsiniz.

Exceptions

InvalidOperationException

Her ikisi de source’ ve fileInfo’ sıfır veya source’ sıfır ve fileInfo’ dizin için geçerlidir.

CreateEntry(Çerçeve, Func, ArşivEntrySettings)

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

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

Parameters

name string

Giriş Adı

streamProvider Func &lt için; Stream >

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

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Zip giriş noktası.

Examples

Şifreli giriş ile 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);
    }
}

Remarks

Bu yöntem .NET Framework 4.0 ve üstü ve .NET Standard 2.0 sürümü için geçerlidir.

DeleteEntry(ArchiveEntry)

Belirli girişlerin ilk ortaya çıkmasını giriş listesinden çıkarır.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Giriş listesinden kaldırılması gereken giriş.

Returns

Archive

Giriş ile arşiv kaldırıldı.

Examples

İşte son yazıyı hariç tüm yazıları nasıl kaldırabilirsiniz:

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

Exceptions

ObjectDisposedException

Arşiv kaldırıldı.

DeleteEntry(int ile)

Giriş listesinden indekslere göre kaldırılır.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Sıfır tabanlı giriş indeksi kaldırılmalıdır.

Returns

Archive

Giriş ile arşiv kaldırıldı.

Examples

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

Exceptions

ObjectDisposedException

Arşiv kaldırıldı.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

Yönetilmemiş kaynakların serbest bırakılması, serbest bırakılması veya yeniden düzenlenmesi ile ilişkili uygulama tanımlanmış görevleri yerine getirir.

public void Dispose()

Dispose(bool)

Yönetilmemiş kaynakların serbest bırakılması, serbest bırakılması veya yeniden düzenlenmesi ile ilişkili uygulama tanımlanmış görevleri yerine getirir.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Yönetilen kaynakların dağıtılması gerekmektedir.

ExtractToDirectory(Sırt)

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

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Çekilen dosyaları yerleştirmek için dizine giden yol.

Examples

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

Remarks

Eğer katalog yoksa, oluşturulacaktır.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden az olmalıdır ve dosya isimleri 260 karakterden az olmalıdır.

SecurityException

Çağrıcı, mevcut dizinlere erişmek için gerekli izinlere sahip değildir.

NotSupportedException

Eğer dizin yoksa, yol bir sürücü etiketinin bir parçası olmayan bir kolon karakterini (:) içerir (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

Yol tarafından belirtilen dizin bir dosyadır. -or- Ağ adı bilinmemektedir.

InvalidDataException

Yanlış şifre sağlandı. - veya - Arşiv bozulmuştur.

Save(Akış, ArşivSaveOptions)

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

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

Parameters

outputStream Stream

Amaç akışı.

saveOptions ArchiveSaveOptions

Arşiv tasarrufu için seçenekler.

Examples

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

Remarks

Yazılabilir olması gerekir.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Arşiv kaldırıldı.

Save(arşiv, arşiv seçenekleri)

Arşivleri sağlanan hedef dosyasına kaydeder.

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

Parameters

destinationFileName string

Dosya adı belirlenmiş bir dosyaya işaret ederse, yeniden yazılacaktır.

saveOptions ArchiveSaveOptions

Arşiv tasarrufu için seçenekler.

Examples

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

Remarks

Bir arşivi yüklendiği gibi aynı yoldan kaydetmek mümkündür. ancak, bu yaklaşım geçici bir dosyaya kopyalama kullanır çünkü tavsiye edilmez.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Müşteri, gerekli izinleri almamaktadır.

ArgumentException

destinationFileName’ boş, yalnızca beyaz alanlar içerir veya geçersiz karakterler içerir.

UnauthorizedAccessException

destinationFileName’ dosyasına erişim reddedilir.

PathTooLongException

Belirlenen destinationFileName’, dosya adı, ya da her ikisi de sistem tarafından belirlenen maksimum uzunluğu aşmaktadır.Örneğin, Windows tabanlı platformlarda, yollar 248 karakterden az olmalıdır ve dosya isimleri 260 karakterden az olmalıdır.

NotSupportedException

destinationFileName’ dosyası, satırın ortasında bir sütun (:) içerir.

FileNotFoundException

Dosya bulunamadı.

DirectoryNotFoundException

Belirlenmiş yol geçersizdir, örneğin haritalmamış bir sürücü üzerinde olması.

IOException

Dosya zaten açıktır.

SaveSplit(Çerçeve, SplitArchiveSaveOptions)

Çeşitli arşivleri sağlanan hedef dizinine kaydeder.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Arşiv segmentlerinin oluşturulacağı dizinlere giden yol.

options SplitArchiveSaveOptions

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

Examples

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

Remarks

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

Mevcut arşivleri çok boyutlu hale getiremez.

Exceptions

InvalidOperationException

Bu arşiv mevcut kaynaktan açıldı.

NotSupportedException

Bu arşiv hem XZ yöntemi ile sıkıştırılır hem de şifrelenir.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Çağrıcı, dizinlere erişmek için gerekli izinlere sahip değildir.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

Belirlenen yol, sistem tarafından belirlenen maksimum uzunluğu aşmaktadır.

ObjectDisposedException

Arşiv kaldırıldı.

 Türkçe