.NET uygulamalarınızdaki arşivlerle çalışırken birden çok ZIP veya TAR dosyasını birleştirmeniz gerekebilir. Örneğin, birden fazla arşivden dosya ve klasörleri ayıklayıp tek bir arşive koymak isteyebilirsiniz. Bunu başarmak için bu makale, birden çok ZIP veya TAR dosyasının C# dilinde nasıl birleştirileceğini kapsar. ZIP’in ZIP’e, TAR’ın TAR’a, ZIP’in TAR’a ve TAR’ın ZIP’e birleştirilmesini ele alacağız.
- ZIP ve TAR Dosyalarını Birleştirmek için C# API
- Birden Çok ZIP Dosyasını C# ile Birleştirme
- Birden Çok TAR Dosyasını C# ile Birleştirme
- ZIP’i C# ile TAR ile birleştirin
- TAR’ı C# ile ZIP ile birleştirin
ZIP ve TAR Dosyalarını Birleştirmek için C# .NET API
Birden fazla ZIP ve TAR arşivini birleştirmek için Aspose.ZIP for .NET’ten yararlanacağız. Çeşitli popüler arşiv biçimlerini oluşturmanıza ve yönetmenize izin veren, zengin özelliklere sahip bir .NET API’sidir. API’nin DLL’sini indirebilir veya doğrudan NuGet kullanarak yükleyebilirsiniz.
PM> Install-Package Aspose.Zip
Birden Çok ZIP Dosyasını C# ile Birleştirme
ZIP formatındaki arşivleri birleştirme yolculuğumuza başlayalım. İki ZIP arşivi alacağız ve girişlerini tek bir ZIP dosyasında toplayacağız. C# dilinde birden çok ZIP dosyasını birleştirme adımları aşağıda verilmiştir.
- Archive sınıfını kullanarak ilk ZIP dosyasını yükleyin.
- Benzer şekilde, Archive sınıfını kullanarak ikinci ZIP dosyasını yükleyin.
- Şimdi, Archive.Entries koleksiyonunu kullanarak ilk ZIP girişleri arasında geçiş yapın.
- ArchiveEntry yöntemini ArchiveEntry.Open().CopyTo(MemoryStream) yöntemini kullanarak MemoryStream nesnesine kopyalayın.
- Archive.CreateEntry(string, MemoryStream) yöntemini kullanarak ikinci ZIP’e giriş ekleyin.
- Birleştirilmiş ZIP’yi Archive.Save(string) yöntemini kullanarak ayrı bir dosya olarak kaydedin.
Aşağıdaki kod örneği, C# dilinde iki ZIP dosyasının nasıl birleştirileceğini gösterir.
// Kaynak ZIP arşivini yükleyin
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
// Hedef ZIP arşivini yükle
using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Girişler üzerinde yineleme yapın
foreach (ArchiveEntry entry in sourceArchive.Entries)
{
// Girişin bir dizin olmadığını kontrol edin. Dizin olan girişler atlanır, ancak dosyaları göreli yollara göre eklenir.
if (!entry.IsDirectory)
{
// Girişi bellek akışına yükle
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Hedef ZIP'e giriş ekle
destArchive.CreateEntry(entry.Name, mem);
}
}
// Birleştirilmiş arşivi ayrı kaydet
destArchive.Save("Archives/merged-archive.zip");
}
}
Birden Çok TAR Dosyasını C# ile Birleştirme
Şimdi birden fazla TAR arşivinin C# dilinde nasıl birleştirileceğini görelim. Bunu başarmak için adımlar aşağıdadır.
- TarArchive sınıfını kullanarak ilk TAR dosyasını yükleyin.
- Benzer şekilde, TarArchive sınıfını kullanarak ikinci TAR dosyasını yükleyin.
- Şimdi, TarArchive.Entries koleksiyonunu kullanarak ilk TAR’ın girişleri arasında geçiş yapın.
- TarEntry.Open().CopyTo(MemoryStream) yöntemini kullanarak her TarEntry öğesini bir MemoryStream nesnesine kopyalayın.
- TarArchive.CreateEntry(string, MemoryStream) yöntemini kullanarak ikinci TAR’a giriş ekleyin.
- TarArchive.Save(string) yöntemini kullanarak birleştirilmiş TAR’ı kaydedin.
Aşağıdaki kod örneği, C# dilinde birden çok TAR dosyasının nasıl birleştirileceğini gösterir.
// Kaynak TAR arşivini yükleyin
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// Hedef TAR arşivini yükle
using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Girişler üzerinde yineleme yapın
foreach (TarEntry entry in sourceArchive.Entries)
{
// Girişin bir dizin olmadığını kontrol edin. Dizin olan girişler atlanır, ancak dosyaları göreli yollara göre eklenir.
if (!entry.IsDirectory)
{
// Girişi bellek akışına yükle
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Hedef TAR'a giriş ekle
destArchive.CreateEntry(entry.Name, mem);
}
}
// Birleştirilmiş arşivi ayrı kaydet
destArchive.Save("Archives/merged-archive.tar");
}
}
ZIP’i C# ile TAR ile birleştirin
Bu bölümde, bir ZIP dosyasının C# dilinde TAR arşiviyle nasıl birleştirileceğini göreceğiz. Aşağıda bu işlemi gerçekleştirmek için adımlar verilmiştir.
- Archive sınıfını kullanarak ZIP dosyasını yükleyin.
- TarArchive sınıfını kullanarak TAR dosyasını yükleyin.
- Şimdi, Archive.Entries koleksiyonunu kullanarak ZIP girişleri arasında geçiş yapın.
- ArchiveEntry‘yi ArchiveEntry.Open().CopyTo(MemoryStream) yöntemini kullanarak bir MemoryStream nesnesine kopyalayın.
- TarArchive.CreateEntry(string, MemoryStream) yöntemini. kullanarak TAR’a giriş ekleyin
- TAR dosyasını TarArchive.Save(string) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, bir ZIP arşivinin TAR ile nasıl birleştirileceğini gösterir.
// Kaynak ZIP arşivini yükleyin
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
// Hedef TAR arşivini yükle
using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Girişler üzerinde yineleme yapın
foreach (ArchiveEntry entry in zipArchive.Entries)
{
// Girişin bir dizin olmadığını kontrol edin. Dizin olan girişler atlanır, ancak dosyaları göreli yollara göre eklenir.
if (!entry.IsDirectory)
{
// Girişi bellek akışına yükle
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Hedef TAR'a giriş ekle
tarArchive.CreateEntry(entry.Name, mem);
}
}
// Birleştirilmiş arşivi ayrı kaydet
tarArchive.Save("Archives/merged-archive.tar");
}
}
TAR’ı C# ile ZIP ile birleştirin
Önceki örneğe benzer şekilde, bir TAR dosyasını ZIP ile birleştirebilirsiniz. Aşağıdaki kod örneği, dosyaların bir TAR’dan nasıl çıkarılacağını ve bunların bir ZIP’de nasıl birleştirileceğini gösterir.
// TAR arşivini yükle
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// ZIP arşivini yükle
using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Girişler üzerinde yineleme yapın
foreach (TarEntry entry in tarArchive.Entries)
{
// Girişin bir dizin olmadığını kontrol edin. Dizin olan girişler atlanır, ancak dosyaları göreli yollara göre eklenir.
if (!entry.IsDirectory)
{
// Girişi bellek akışına yükle
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// ZIP'e giriş ekle
zipArchive.CreateEntry(entry.Name, mem);
}
}
// Birleştirilmiş arşivi ayrı kaydet
zipArchive.Save("Archives/merged-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, birden çok ZIP veya TAR arşivini C# dilinde programlı olarak nasıl birleştireceğinizi öğrendiniz. Özellikle, ZIP dosyalarının, TAR dosyalarının, ZIP’in TAR’a ve TAR’ın ZIP’e dinamik olarak nasıl birleştirileceğini ele aldık. Aspose.ZIP for .NET hakkında daha fazlasını keşfetmek için belgeleri ziyaret edebilirsiniz. Ayrıca, sorularınızı forumumuza gönderebilirsiniz.