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
Uygulamalar
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
sourceStream
erişilebilir değil.
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
path
null.
Arayanın erişim için gerekli izni yok.
path
boş, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.
path
dosyasına erişim reddedildi.
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.
path
içinde bir iki nokta (:) içeriyor.
Dosya bulunamadı.
Belirtilen yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.
Dosya zaten açık.
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
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>
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
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üş
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
directory
için yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.
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üş
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üş
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
path
null.
Arayanın erişim için gerekli izni yok.
path
boş, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.
path
dosyasına erişim reddedildi.
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.
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üş
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üş
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
fileInfo
yalnızca okunabilir veya bir dizindir.
Belirtilen yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.
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üş
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
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>
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üş
Zip girişi örneği.
Örnekler
Şifreli girişle arşiv oluşturun.
System.Func<Stream> 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üş
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
İstisnalar
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üş
Girişi silinmiş arşiv.
Örnekler
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
İstisnalar
Arşiv atılmıştır.
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
destinationDirectory
null.
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.
Arayanın mevcut dizine erişim için gerekli izni yok.
Eğer dizin mevcut değilse, yol bir sürücü etiketinin (“C:") parçası olmayan bir iki nokta karakteri (:) içeriyor.
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.
Belirtilen yol bir dosyadır. -veya- Ağ adı bilinmiyor.
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
outputStream
yazılabilir değil.
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
destinationFileName
null.
Arayanın erişim için gerekli izni yok.
destinationFileName
boş, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.
destinationFileName
dosyasına erişim reddedildi.
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.
destinationFileName
içinde bir iki nokta (:) içeriyor.
Dosya bulunamadı.
Belirtilen yol geçersiz, örneğin, haritalanmamış bir sürücüde bulunuyor.
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
Bu arşiv mevcut bir kaynaktan açılmıştır.
Bu arşiv hem XZ yöntemi ile sıkıştırılmış hem de şifrelenmiştir.
destinationDirectory
null.
Arayanın dizine erişim için gerekli izni yok.
destinationDirectory
geçersiz karakterler içeriyor, örneğin “, >, < veya |.
Belirtilen yol sistem tanımlı maksimum uzunluğu aşıyor.
Arşiv atılmıştır.