Birden Çok ZIP veya TAR Arşivini C# ile Birleştirin

.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# .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.

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.

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.

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.

Ayrıca bakınız