C# ile Düz ZIP Arşivi Oluşturma

ZIP arşivleri ile çalışırken, bir ZIP dosyasının başka ZIP dosyaları içerdiği bir durumla karşılaşabilirsiniz ve bu da iç içe bir yapı oluşturur. Amacınız, tüm iç ZIP arşivlerini dış arşive çıkararak bu durumu düzene sokmaksa, doğru yerdesiniz. Bu makalede, güçlü Aspose.ZIP for .NET kullanarak C# ile düz ZIP arşivi oluşturmanın nasıl yapılacağını keşfedeceğiz.

İçindekiler

.NET API’sinin Düz ZIP Arşivleri Oluşturma Üzerine Genel Bakış

Düz ZIP arşivleri oluşturmak için Aspose.ZIP for .NET kütüphanesini kullanacağız. Bu sağlam arşivleme API’si, ZIP, TAR, GZip ve 7z dahil olmak üzere çeşitli arşiv formatlarını oluşturmanıza ve çıkarmanıza olanak tanır. Bu kütüphaneyi NuGet üzerinden kolayca yükleyebilir veya indirme bölümünden DLL’sini indirebilirsiniz.

PM> Install-Package Aspose.Zip

C# ile Düz ZIP Arşivi Oluşturma Adımları

Düz ZIP arşivinin yapısını daha iyi anlamak için aşağıdaki örneği göz önünde bulundurun. Başlangıçta, başka bir ZIP arşivi içeren bir ZIP arşivimiz var:

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ game.exe
 │ └ subitem.bin
 └ picture.gif

Bu ZIP arşivini düz bir yapıya dönüştürdüğümüzde, iç ZIP’ten tüm girişler ana ZIP’e çıkarılacak ve aşağıdaki yapı oluşacaktır:

flatten.zip
 ├ first.txt
 ├ picture.gif
 ├ game.exe
 └ subitem.bin

Uygulama Adımları

C#‘da programatik olarak düz bir ZIP arşivi oluşturmanın yolu:

  1. Ana ZIP Arşivini Yükleyin: Archive sınıfını kullanarak ana ZIP’i yükleyin.
  2. Listeleri Başlatın: Şunları saklamak için listeler oluşturun:
    • Ana ZIP’ten silinecek girişler
    • Çıkarılan girişler ve isimleri
  3. Arşiv Girişleri Üzerinde Dönün: Ana ZIP’teki her ArchiveEntry üzerinde Archive.Entries koleksiyonunu kullanarak döngü yapın.
  4. Her Girişi İşleyin:
    • Girişin bir ZIP arşivi olup olmadığını kontrol edin ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase) ile.
    • Eğer öyleyse, silinecek girişler listesine ekleyin.
    • Girişi bir MemoryStream nesnesine açın ArchiveEntry.Open().CopyTo(MemoryStream) ile.
    • İç ZIP arşivinin girişleri üzerinde döngü yaparak aşağıdakileri gerçekleştirin:
      • Her girişin ismini eklenmesi gereken girişler listesine ekleyin.
      • Her girişi bir MemoryStream içine yükleyin ArchiveEntry.Open().CopyTo(MemoryStream) ile.
      • Girişi ana ZIP’e eklenmesi gereken girişler listesine ekleyin.
  5. İç ZIP Girişlerini Silin: İç ZIP arşivlerinin listesini döngüye alarak her girişi silin Archive.DeleteEntry(ArchiveEntry) metodu ile.
  6. Yeni Girişleri Ana ZIP’e Ekleyin: Eklenmesi gereken girişler listesini döngüye alarak her girişi ekleyin Archive.CreateEntry(String, Stream) metodu ile.
  7. Ana ZIP Arşivini Kaydedin: Son olarak, değiştirilen ana ZIP arşivini kaydedin Archive.Save(String) metodu ile.

C# ile düz ZIP arşivi oluşturmanın nasıl yapılacağını gösteren bir kod örneği:

Ücretsiz API Lisansı Alın

Aspose.ZIP for .NET’i değerlendirme sınırlamaları olmadan kullanmak için ücretsiz geçici bir lisans alabilirsiniz.

Sonuç

Bu öğreticide, C# kullanarak etkili bir şekilde düz ZIP arşivi oluşturmayı öğrendiniz. İç ZIP arşivlerini ana ZIP’e çıkarma sürecini gösterdik ve iç içe klasörlerden kaçındık. Daha fazla bilgi için Aspose.ZIP for .NET belgelere göz atabilir veya bizimle forum üzerinden iletişime geçebilirsiniz.

Ayrıca Bakınız

Bu adımları takip ederek, uygulamalarınızda C# düz zip dosyası sıkıştırmasını kolayca uygulayabilir, verimli ve yönetimi kolay bir tek dosya zip arşivi elde edebilirsiniz.