Конвертация файлов 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-архивов.