
.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.
- Archive sınıfını kullanarak ZIP arşivini yükleyin.
- Archive.Entries koleksiyonundaki girişler arasında dolaşın.
- İstediğiniz dosyaları/klasörleri filtreleyin ve bir listeye ekleyin.
- Archive.DeleteEntry(ArchvieEntry) yöntemini kullanarak listedeki her girişi silin.
- Archive.Save(string) yöntemini kullanarak güncellenmiş ZIP arşivini kaydedin.
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.
- Archive sınıfını kullanarak ZIP arşivini yükleyin.
- Archive.DeleteEntry(int) yönteminde dizin belirterek dosyayı silin.
- Archive.Save(string) yöntemini kullanarak güncellenmiş ZIP arşivini kaydedin.
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.