C# .NET'te ZIP Arşivindeki Dosyaları Silme

.NET uygulamalarınızdaki arşivlerle çalışırken, bir ZIP içindeki dosyaları değiştirmeniz gerekebilir. Önceki gönderide, bir ZIP arşivine nasıl dosya/klasör ekleneceğini gördünüz. Bu yazıda, ZIP arşivlerindeki dosyaları C# dilinde programlı olarak nasıl sileceğinizi öğreneceksiniz. Öyleyse başlayalım.

ZIP Arşivlerindeki Dosyaları Silmek için C# .NET API

Aspose.ZIP for .NET, çok çeşitli arşivleme özellikleri sağlayan güçlü bir API’dir. ZIP, TAR, 7z ve GZip gibi popüler biçimlerde arşivler oluşturmanıza ve değiştirmenize olanak tanır. ZIP arşivlerindeki dosyaları dinamik olarak silmek için bu API’yi kullanacağız. API’yi NuGet’ten yükleyebilir veya DLL’yi indirebilir ve buna manuel olarak başvurabilirsiniz.

PM> Install-Package Aspose.Zip 

C#‘daki ZIP Arşivlerindeki Dosyaları Sil

Aspose.ZIP for .NET kullanarak bir ZIP arşivindeki dosyaları silmenin iki yolu vardır. Biri dosyanın dizinini kullanırken diğeri ArchiveEntry sınıfını kullanıyor. Yukarıda belirtilen yöntemlerin her ikisinin de nasıl kullanılacağını görelim.

ArchiveEntry kullanarak ZIP’deki bir Dosyayı Sil

Aspose.ZIP for .NET, bir ZIP içindeki her dosyayı/klasörü bir ArchiveEntry nesnesi olarak temsil eder ve tüm dosya ve klasörler, ArchiveEntry nesnelerinin bir koleksiyonunu oluşturur. Böylece bir dosyayı ZIP’den silmek için ilgili ArchiveEntry nesnesine ulaşabilir ve koleksiyondan silebilirsiniz. C# dilinde bir ZIP arşivinden dosya silme adımları aşağıda verilmiştir.

Aşağıdaki kod örneği, C# dilinde bir ZIP arşivindeki dosyaların nasıl silineceğini gösterir.

// ZIP arşivini yükleyin
using (var archive = new Archive("Archives/archive.zip"))
{
    // Silinecek dosyaları saklamak için liste
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // ZIP girişleri arasında geçiş yapın
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // Listeye dosya/klasör ekle
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // Listelenen tüm girişleri sil
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // Güncellenen arşivi kaydet
    archive.Save("Archives/updated-archive.zip");
}

Dizini Kullanarak ZIP’deki Bir Dosyayı Silme

ZIP girişlerini dizinlerini kullanarak da silebilirsiniz. Aşağıda, dizinini kullanarak bir ZIP arşivinden dosya/klasör kaldırma adımları yer almaktadır.

Aşağıdaki C# kod örneği, dizinini kullanarak ZIP arşivindeki bir dosyanın nasıl kaldırılacağını gösterir.

// ZIP arşivini yükleyin
using (var archive = new Archive("Archives/archive.zip"))
{
    // Dosyayı dizinine göre sil
    archive.DeleteEntry(0);

    // Güncellenen arşivi kaydet
    archive.Save("Archives/updated-archive.zip");
}

Ücretsiz API Lisansı Alın

Ücretsiz bir geçici lisans alarak değerlendirme sınırlamaları olmadan Aspose.ZIP for .NET’i kullanabilirsiniz.

Çözüm

Bu makalede, C# dilinde ZIP arşivlerinden dosya silmeyi öğrendiniz. Kod örnekleri yardımıyla ArchiveEntry sınıfını veya indeksi kullanarak dosyaların nasıl silineceğini gördük. Aspose.ZIP for .NET hakkında daha fazla bilgi edinmek isterseniz documentation adresini ziyaret edebilirsiniz. Ayrıca sorularınızı forumumuz aracılığıyla da sorabilirsiniz.

Ayrıca bakınız