Об’єднання кількох архівів ZIP або TAR у C#

Під час роботи з архівами у ваших програмах .NET може знадобитися об’єднати кілька файлів ZIP або TAR. Наприклад, ви можете видобути файли та папки з кількох архівів і помістити їх в один архів. Щоб цього досягти, у цій статті описано, як об’єднати кілька файлів ZIP або TAR у C#. Ми розглянемо об’єднання ZIP у ZIP, TAR у TAR, ZIP у TAR і TAR у ZIP.

C# .NET API для об’єднання файлів ZIP і TAR

Щоб об’єднати декілька архівів ZIP і TAR, ми використаємо Aspose.ZIP for .NET. Це багатофункціональний .NET API, який дозволяє створювати та маніпулювати різними популярними форматами архівів. Ви можете завантажити DLL API або встановити його безпосередньо за допомогою NuGet.

PM> Install-Package Aspose.Zip

Об’єднання кількох ZIP-файлів у C#

Давайте почнемо нашу подорож із об’єднання архівів із форматом ZIP. Ми візьмемо два ZIP-архіви та зберемо їхні записи в один ZIP-файл. Нижче наведено кроки для об’єднання кількох ZIP-файлів у C#.

У наведеному нижче прикладі коду показано, як об’єднати два файли ZIP у C#.

// Завантажте вихідний ZIP-архів
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Завантажте цільовий архів ZIP
    using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Переглядайте записи
        foreach (ArchiveEntry entry in sourceArchive.Entries)
        {
            // Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
            if (!entry.IsDirectory)
            {
                // Завантажити запис у потік пам'яті
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Додайте запис до цільового ZIP
                destArchive.CreateEntry(entry.Name, mem);
            } 
        }

        // Збережіть об'єднаний архів окремо
        destArchive.Save("Archives/merged-archive.zip");
    }
}

Об’єднання кількох файлів TAR у C#

Давайте тепер перевіримо, як об’єднати декілька архівів TAR у C#. Нижче наведено кроки для досягнення цього.

У наступному прикладі коду показано, як об’єднати кілька файлів TAR у C#.

// Завантажте вихідний архів TAR
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // Завантажте цільовий архів TAR
    using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Переглядайте записи
        foreach (TarEntry entry in sourceArchive.Entries)
        {
            // Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
            if (!entry.IsDirectory)
            {
                // Завантажити запис у потік пам'яті
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Додайте запис до цільового TAR
                destArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Збережіть об'єднаний архів окремо
        destArchive.Save("Archives/merged-archive.tar");
    }
}

Об’єднання ZIP у TAR у C#

У цьому розділі ми побачимо, як об’єднати файл ZIP в архів TAR на C#. Нижче наведено кроки для виконання цієї операції.

У наведеному нижче прикладі коду показано, як об’єднати архів ZIP у TAR.

// Завантажте вихідний ZIP-архів
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Завантажте цільовий архів TAR
    using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Переглядайте записи
        foreach (ArchiveEntry entry in zipArchive.Entries)
        {
            // Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
            if (!entry.IsDirectory)
            {
                // Завантажити запис у потік пам'яті
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Додайте запис до цільового TAR
                tarArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Збережіть об'єднаний архів окремо
        tarArchive.Save("Archives/merged-archive.tar");
    }
}

Поєднання TAR із ZIP у C#

Подібно до попереднього прикладу, ви можете об’єднати файл TAR у ZIP. У наведеному нижче прикладі коду показано, як видобувати файли з TAR і об’єднувати їх у ZIP.

// Завантажити архів TAR
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // Завантажити ZIP-архів
    using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Переглядайте записи
        foreach (TarEntry entry in tarArchive.Entries)
        {
            // Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
            if (!entry.IsDirectory)
            {
                // Завантажити запис у потік пам'яті
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Додати запис до ZIP
                zipArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Збережіть об'єднаний архів окремо
        zipArchive.Save("Archives/merged-archive.zip");
    }
}

Отримайте безкоштовну ліцензію API

Ви можете використовувати Aspose.ZIP for .NET без оціночних обмежень, отримавши безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як програмно об’єднати декілька архівів ZIP або TAR у C#. Зокрема, ми розглянули, як динамічно об’єднувати файли ZIP, файли TAR, ZIP у TAR і TAR у ZIP. Щоб дізнатися більше про Aspose.ZIP for .NET, ви можете відвідати документацію. Також ви можете опублікувати свої запити на нашому форумі.

Дивись також