Birden çok ZIP arşivinin başka bir ZIP içinde kapsüllendiği senaryoyla sık sık karşılaşıyoruz. Bu gibi durumlarda, önce ana ZIP’i ve ardından iç içe geçmiş arşivleri tek tek çıkarmanız gerekir. İşinizi kolaylaştırmak için bu makalede, karmaşık kod yazmadan C# .NET’te iç içe geçmiş ZIP arşivlerinin nasıl çıkarılacağını göstereceğiz.

İç İçe ZIP Arşivlerini Çıkarmak için C# .NET API

Yuvalanmış ZIP arşivlerini açmak için Aspose.ZIP for .NET kullanacağız. API, .NET uygulamalarının içinden arşivleme işlemleri gerçekleştirmek için tasarlanmıştır. Popüler arşiv biçimlerini sorunsuz bir şekilde oluşturmanıza ve değiştirmenize olanak tanır. API’nin DLL’sini indirebilir veya NuGet kullanarak yükleyebilirsiniz.

PM> Install-Package Aspose.Zip

İç İçe ZIP Arşivlerini C# ile Çıkarın

İç içe geçmiş ZIP arşivlerinin çıkarılmasını göstermek için 3 giriş içeren aşağıdaki ZIP dosyasını oluşturduk.

İç içe ZIP Arşivleri

İç içe ZIP Arşivleri

İç içe geçmiş her bir ZIP arşivini çıkaracağız ve içeriğini ayrı bir klasöre kaydedeceğiz. Aşağıda, C# dilinde iç içe geçmiş ZIP arşivlerini ayıklama adımları yer almaktadır.

Aşağıdaki kod örneği, C# .NET’te iç içe geçmiş ZIP arşivlerinin nasıl açılacağını gösterir.

// ZIP dosyasını bir dosya akışında açın
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
    // Archive sınıfını kullanarak ZIP dosyasını yükleyin
    using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
    {
        // ZIP arşivindeki her girişe erişin
        foreach(ArchiveEntry entry in archive.Entries)
        {
            if(entry.Name.ToLower().Contains(".zip"))
            {
                // Yuvalanmış arşiv için bellek akışı oluştur
                MemoryStream nestedArchiveStream = new MemoryStream();

                // Arşivi bellek akışına kopyala
                entry.Open().CopyTo(nestedArchiveStream);

                // İç içe geçmiş arşivi bellek akışından yükleyin
                using (var nestedArchive = new Archive(nestedArchiveStream))
                {
                    // Arşivi diske çıkarın.
                    nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
                }                               

            }

        } 
    }
}

Çıkartılan ZIP arşivlerinin ekran görüntüsü aşağıdadır.

C# .NET'te iç içe geçmiş ZIP arşivlerini çıkarma

Sıkıştırılmış İç İçe Arşivler

Ücretsiz API Lisansı Alın

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

Çözüm

Bu makalede, C#’ta iç içe ZIP arşivlerini nasıl çıkaracağınızı öğrendiniz. Adım adım kılavuz ve kod örneği, iç içe geçmiş her bir arşivin ayrı bir klasöre nasıl açılacağını göstermiştir. Ayrıca, Aspose.ZIP for .NET’in diğer özelliklerini keşfetmek için documentation adresini ziyaret edebilirsiniz. Ayrıca sorularınızı forumumuz aracılığıyla da sorabilirsiniz.

Ayrıca bakınız