Как конвертировать CAB в 7ZIP с помощью C#

Сначала получите и подключите библиотеку Aspose.Zip в вашем проекте C#. Как правило, её можно скачать с сайта Aspose или использовать пакет NuGet, если он доступен. В диспетчере пакетов найдите Aspose.ZIP и установите его. Также вы можете воспользоваться следующей командой из консоли диспетчера пакетов.

Управление пакетами NuGet с помощью диспетчера пакетов Visual Studio

Команда консоли диспетчера пакетов:

PM> Install-Package Aspose.Zip

Шаги преобразования CAB в 7ZIP на C#

Convertation from CAB to 7ZIP consist of following steps:

  • Extract archive to intermediate storage
  • Compress extracted data to desired format

Системные требования

Before running the conversion example code, make sure that you have the following prerequisites.

  • Microsoft Windows or a compatible OS with .NET Framework, Mono and COM Interop.
  • Development environment like Microsoft Visual Studio.
  • Aspose.Tasks for .NET DLL referenced in your project.

Пример кода для конвертации из CAB в 7ZIP

Код для преобразования CAB в различные форматы: архив CAB обычно содержит несколько записей или файлов. Чтобы преобразовать этот архив в форматы GZ (Gzip), LZ (Lzip), Z (Unix Compress), XZ (XZ Utils) и BZ2 (Bzip2), распространённым подходом является предварительная упаковка содержимого в формат TAR (Tape Archive). Этот процесс напоминает типичную практику в средах Linux.

В ходе конвертации каждый файл или запись в архиве CAB сначала объединяются в один TAR‑архив. TAR‑архив служит контейнером для отдельных файлов, сохраняя их исходную структуру и метаданные. После инкапсуляции данных в TAR становится проще применять различные алгоритмы и форматы сжатия.

Выбор TAR в качестве промежуточного формата обусловлен его простотой и широкой совместимостью с Unix‑подобными ОС. Он предоставляет простой способ группировки файлов без непосредственного сжатия. После упаковки в TAR к архиву можно применять операции сжатия для получения требуемых форматов вывода, таких как GZ, LZ, Z, XZ или BZ2.

Преобразование CAB в 7ZIP — C#:

    using (SevenZipArchive sevenZipArchive =  new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(1048576))))
    {
        using (CabArchive cabArchive = new CabArchive("archive.cab"))
        {
            for (int i = 0; i < cabArchive.Entries.Count; i++)
            {
                var ms = new MemoryStream();
                cabArchive.Entries[i].Extract(ms);
                ms.Seek(0, SeekOrigin.Begin);
                sevenZipArchive.CreateEntry(cabArchive.Entries[i].Name.Replace('\\', '/'), ms);
            }
        }

        sevenZipArchive.Save("output.7z");
    }



Бесплатное приложение для конвертации ZIP в 7ZIP

Ознакомьтесь с нашими живыми демо по конвертации CAB в 7ZIP со следующими преимуществами


Надёжная библиотека Aspose.ZIP, которая может сжимать, извлекать, шифровать, дешифровать, конвертировать и объединять архивы. API Aspose.ZIP for .NET позволяет работать с различными типами архивов, не вдаваясь в сложность форматов сжатия, при минимальных затратах на кодирование.

Другие поддерживаемые конвертации CAB

Вы также можете конвертировать CAB во многие другие форматы файлов, включая перечисленные ниже.