RAR в ZIP C#

Конвертация файлов RAR в формат ZIP является обычным требованием при работе со сжатыми архивами. ZIP широко поддерживается на различных платформах, что делает его более универсальным выбором для обмена и хранения. В этой записи блога мы рассмотрим решение с использованием C# для конвертации архивов RAR в формат ZIP.

Зачем конвертировать RAR в ZIP?

Существует несколько причин конвертировать файлы RAR в ZIP:

  • Кроссплатформенная совместимость: ZIP поддерживается на большем количестве систем и платформ по сравнению с RAR.

  • Встроенная поддержка: многие операционные системы, такие как Windows и macOS, могут извлекать ZIP-файлы по умолчанию, без необходимости использования стороннего программного обеспечения.

  • Эффективность сжатия: сжатие ZIP эффективно и обеспечивает баланс между размером файла и скоростью.

Теперь перейдем к установке, пошаговому руководству и примеру кода.

Конвертер архивов RAR в ZIP — конфигурация API C#

Вы можете преобразовать сжатые форматы архивов на своей стороне, установив Conholdate.Total for .NET с помощью следующей команды установки в консоли диспетчера пакетов NuGet:

PM> NuGet\Install-Package Conholdate.Total

Конвертировать RAR в ZIP на C#

Для этого мы будем использовать библиотеку Aspose.Zip, которая является частью пакета Conholdate.Total for .NET. Ниже приведено пошаговое описание того, как преобразовать файл RAR в файл ZIP:

  • Инициализация ZIP-архива: Начнем с создания нового объекта Aspose.Zip.Archive, который будет представлять ZIP-файл.
  • Открыть и извлечь файл RAR: загрузить файл RAR с помощью Aspose.Zip.Rar.RarArchive и извлечь каждую запись. Файлы и каталоги в архиве RAR обрабатываются отдельно.
  • Добавить записи в ZIP-архив: Для каждой записи (файла или каталога) в файле RAR мы добавляем ее в ZIP-архив. Файлы записываются как записи ZIP, а каталоги создаются как пустые записи.
  • Сохраните ZIP-файл: После добавления всех записей сохраните ZIP-архив в желаемом месте вывода.

Следующий фрагмент кода показывает, как преобразовать RAR в ZIP на языке C#:

using (Aspose.Zip.Archive zip = new Aspose.Zip.Archive())
{
    using (Aspose.Zip.Rar.RarArchive rar = new Aspose.Zip.Rar.RarArchive("archvie.rar"))
    {
       for (int i = 0; i < rar.Entries.Count; i++)
        {
            if (!rar.Entries[i].IsDirectory)
            {
                var ms = new MemoryStream();
                rar.Entries[i].Extract(ms);
                ms.Seek(0, SeekOrigin.Begin);
                zip.CreateEntry(rar.Entries[i].Name, ms);
            }
            else
                zip.CreateEntry(rar.Entries[i].Name + "/", Stream.Null);
        }
    }

    zip.Save("output.zip");
}

Бесплатная ознакомительная лицензия

Вы можете получить бесплатную временную лицензию, чтобы попробовать эту и многие другие функции для обработки или преобразования сжатых архивных файлов в вашей среде.

Заключение

Для преобразования файла RAR в файл ZIP в C# требуется всего несколько вызовов методов, не беспокоясь о второстепенных деталях или структуре сжатых форматов файлов. Следуя этому подходу, вы можете легко извлекать файлы из архива RAR и сжимать их в формат ZIP. Это гарантирует, что ваши файлы будут более совместимыми и доступными на разных платформах. В то же время, если вы хотите обсудить какие-либо ваши вопросы, пожалуйста, напишите нам на форум.

Часто задаваемые вопросы

Сохраняется ли структура каталогов при конвертации?

Да, код сохраняет структуру каталогов из файла RAR при добавлении записей в архив ZIP.

Нужно ли мне стороннее программное обеспечение для извлечения ZIP-файлов?

Нет, ZIP-файлы можно извлекать автоматически на большинстве платформ, включая Windows и macOS.

Могу ли я защитить ZIP-файл паролем?

Да, Aspose.ZIP позволяет использовать шифрование и защиту паролем при создании ZIP-архивов.

Смотрите также