ZIP Arşiv Formatı

Verilerin kral olduğu ve depolama verimliliğinin en üst düzeyde olduğu dijital çağda, ZIP arşivleri, dosyaları sıkıştırmak ve düzenlemek için istikrarlı ve her yerde bulunan bir çözüm olarak kaldı.

Zip Arşivi Bilgileri Hakkında

ZIP, şifrelemeli veya şifrelemesiz bir veya daha fazla kayıpsız sıkıştırılmış dosya ve klasörü tutabilen bir arşiv formatıdır. ZIP, otuz yılı aşkın süredir bilinen ve neredeyse tüm modern işletim sistemlerinde desteklenen en popüler formattır. Bu format aynı zamanda JAR ve OpenDocument gibi diğer bazı formatlara da yayıldı.

Zip arşivi Dosya Formatı Geçmişi Bilgisi

ZIP’in ilk format spesifikasyonu 1989’da yayınlandı. ZIP fikrinin yazarları Phil Katz ve Gary Conway’di. Dosya boyutlarını azaltmadaki verimliliği, dosyaların yavaş internet bağlantıları ve o dönemin sınırlı depolama kapasiteleri üzerinden saklanmasını ve iletilmesini kolaylaştırması nedeniyle anında başarı elde etti. 1993’ten beri en yaygın Deflate sıkıştırma yöntemini desteklemektedir. Güçlü AES şifrelemesi 2003 yılında tanıtıldı. Oldukça eski olmasına rağmen standart fosilleşmedi ve günümüzde aktif olarak geliştiriliyor. Böylece 2020 yılında Zstandard, MP3 ve XZ sıkıştırma yöntemleriyle genişletildi.

ZIP Arşivinin Yapısı

ZIP arşivleri, sıkıştırılmış dosyaları verimli bir şekilde depolamak ve düzenlemek ve aynı zamanda arşiv içindeki ayrı dosyalara kolay erişim sağlamak için bu hiyerarşik yapıda tasarlanmıştır. Arşivin her girişi ayrı ayrı sıkıştırılır, hatta kendi sıkıştırma ve şifreleme yöntemiyle bile olabilir. Arşiv içindeki giriş, orijinal dosya meta verilerini içeren bir önceki başlığa sahiptir. İçerik tablosu dosyanın sonunda bulunur. Bu tür bir yaklaşım, kendi kendine açılan (SFX) arşivinin oluşturulmasına olanak tanır; bu arşiv, SFX dosyasının en başında yer alan yürütülebilir kısım nedeniyle geçerli bir ZIP arşivi olarak da kalır.

Zip Sıkıştırma Yöntemleri

Modern ZIP, verilerin Deflate, Deflate64™, BZIP2, LZMA, XZ, PPMd, Zstandard algoritmalarıyla sıkıştırılmasına olanak tanır. Dosya ayrıca sıkıştırılmadan da saklanabilir. En yaygın olanı, herhangi bir arşivleme aracında varsayılan olan Deflate’dir. Belirli dosyaların kayıpsız sıkıştırılmasına yönelik algoritmalar da vardır: MP3, JPEG, WAV. Aspose.ZIP, Deflate, Deflate64™, Bzip2, LZMA, XZ, PPMd ve Zstandard yöntemlerini tam olarak destekler. WavPack sıkıştırılmış sesin çıkarılmasına izin verir.

Zip Arşivi Desteklenen İşlemler

Aspose.ZIP’i kullanarak ZIP arşivini çeşitli şekillerde yönetebilirsiniz. Arşiv oluşturabilir, yeniden paketlemeye gerek kalmadan mevcut arşive girişler ekleyebilir, arşivin geri kalanını etkilemeden mevcut arşivdeki girişleri silebilir, isteğe bağlı girişleri veya arşivin tamamını çıkarabilirsiniz. Eski veya modern AES şifreleme algoritmasıyla her girişi ayrı ayrı şifreleyebilir ve şifresini çözebilirsiniz. Aspose.ZIP, kendiliğinden açılan ve çok ciltli ZIP arşivleri oluşturabilir.

Zip dosyası - İç Yapı

Söylendiği gibi içindekiler tablosu olan merkezi dizin ZIP arşivinin sonuna doğru yer alıyor. Bu dizin, arşivdeki tüm dosya girişlerini arşiv içindeki konumlarıyla birlikte listeleyen bir dizin görevi görür. Giriş başlıkları oluşturma ve değiştirme zamanlarını, dosya sistemi niteliklerini, dosya adını ve yorumu içerebilir. Giriş başlığı, özel meta verileri depolamak için özel ekstra alanla genişletilebilir. Arşiv başına 65.535’ten fazla girişi desteklemek için Zip64 başlıklarını eklemek mümkündür. Zip64 uzantılı ZIP arşivinin maksimum boyutu 264−1 bayttır. ZIP arşivi birkaç dosyaya bölünebilir. Böyle bir durumda, merkezi dizin, belirli bir girişe hızlı erişim için her birimin uzaklıklarını saklar.

Zip dosyası - İç Yapı

Zip Arşivinin Popülaritesi ve Desteği

ZIP bir numaralı arşiv formatıdır. ZIP arşivleri o kadar geniş çapta tanınır ve desteklenir ki, Windows Explorer, macOS Finder gibi popüler dosya yöneticileri ve 7-Zip ve WinRAR gibi açık kaynaklı araçlar da dahil olmak üzere çeşitli yazılım uygulamaları, ZIP arşivleri için yerel destek sağlar. ZIP dosyalarını oluşturma ve çıkarma. Bu destek bulut depolama hizmetlerine, e-posta istemcilerine ve hatta mobil cihazlara kadar uzanır.

Zip Dosyalarını Kullanma Örnekleri

Zip arşivleri, verileri sıkıştırmak ve düzenlemek için her yerde bulunan bir dosya formatıdır ve bu da onları çeşitli yazılım uygulamalarında vazgeçilmez kılar. .NET aracılığıyla arşivlerle yapılan işlemler, geliştiricilerin Zip dosyalarıyla zahmetsizce çalışmasına olanak tanır. Aşağıdaki kod örneklerinde, Zip arşivi ile yapılan işlemlerin yeteneklerini inceleyerek yeni Zip oluşturma arşivlerinin nasıl oluşturulacağını ve dosyaların verimli bir şekilde ayıklanacağını göstereceğiz. mevcut olanlar. Bu örnekler, .NET projelerinizde Zip arşivlerini sorunsuz bir şekilde yönetmek için bu kitaplığın yeteneklerinden yararlanmanıza yardımcı olacaktır.

Create Zip file via .NET

Compose ZIP archive with two entries added by their paths.:

using (var archive = new Archive())
{
    archive.CreateEntry("entry_name1.dat", "input_file1.dat");
    archive.CreateEntry("entry_name2.dat", "input_file2.dat");
    archive.Save("result_archive.zip");
}

How to UnZIP files in C#

Steps: Unzip File to Folder in C#

  • Create an instance of Archive class based on your zip file.
  • Unzip the zip file using Archive.ExtractToDirectory method to your folder.
using (var archive = new Archive("input_archive.zip"))
{
    archive.ExtractToDirectory("outputDirectory");
}

Compressing Single File ZIP File

Steps: Compressing Single File in C#

  • Create a file stream with the desired name of your output zip file.
  • Create file stream of the data file to be compressed and encrypted.
  • Create an instance of Archive class and pass to it an instance of ArchiveEntrySettings class with AesEcryptionSettings instance, specifying the password.
  • Add data file created in step 2 using Archive.CreateEntry method.
  • Compress and encrypt the data file using Archive.Save method and pass it the file stream created in step 1.
using (var zipFile = File.Open("EncrypedWithAES256.zip", FileMode.Create))
{
    using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
     {
           using (var archive = new Archive(new ArchiveEntrySettings(null, new  AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
           {
                  archive.CreateEntry("alice29.txt", source);
                  archive.Save(zipFile);
           }
      }
}

Deleting entries from existing archive

You do not have to repack whole archive when you only need to remove one entry from it. Steps:

  • Create a file stream with the desired name of your output zip file.
  • Create an instance of Archive class based on your zip file.
  • Delete the first file - the entry with zero index – from the archive.
  • Save the archive without excluded entry to output stream from step 1
using (FileStream outputZipFile = File.Open(withoutAnEntry.zip, FileMode.Create))
{
    using (Archive archive = new Archive(archive.zip))
    {
        archive.DeleteEntry(archive.Entries[0]);
        archive.Save(outputZipFile);
    }
}

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Zip arşivleri hakkında ek bilgi

İnsanlar soruyor

1. Hangi şifreleme yöntemini seçmeliyim?

ZIP formatı geleneksel (ZipCrypto) ve modern AES şifreleme tekniklerini destekler. Birincisi ikincisinden çok daha zayıftır ve kolaylıkla kırılabilir; ZipCrypto, eski sürümler için Aspose.ZIP tarafından desteklenmektedir. Arşiv oluştururken lütfen yalnızca AES256 şifrelemesini kullanın.

2. Sıkıştırma için çok çekirdekli işlemcilerden yararlanmanın bir yolu var mı?

Aspose.ZIP, farklı CPU çekirdeklerine göre ZIP arşivi girişleri oluşturmanıza olanak tanır. Bu, toplam sıkıştırma süresini önemli ölçüde azaltabilir. Açıklama ve kullanım örneğiyle birlikte bir makaleye bakın.

3. Virüs zip’e bulaşabilir mi?

Evet, dosyalara virüs bulaşmışsa, virüsler Zip arşivindeki dosyalara da bulaşabilir. Zip formatının kendisi doğası gereği zararlı olmasa da, tıpkı diğer dosya formatları gibi, virüslü dosyaları saklayabilir ve taşıyabilir.