RAR — широко используемый формат архивных файлов, поддерживающий сжатие данных без потерь. Часто люди предпочитают RAR архиву ZIP, потому что он обеспечивает лучшую степень сжатия и сохраняет меньший размер архива. Однако в некоторых случаях вам может потребоваться преобразовать файлы RAR в ZIP-архивы. Для этого в этой статье рассказывается, как программно преобразовать файл RAR в ZIP на C#.
C# .NET API для преобразования RAR в ZIP
Aspose.ZIP для .NET — это мощный API для архивирования, который поддерживает создание и управление популярными форматами архивов. Мы будем использовать этот API для преобразования файлов RAR в формат ZIP. Чтобы использовать API, вы можете установить его из NuGet или загрузить его DLL из раздела загрузок.
PM> Install-Package Aspose.Zip
Преобразование файла RAR в ZIP на C#
Файлы RAR можно преобразовать в формат ZIP за несколько шагов с помощью Aspose.ZIP для .NET. Ниже приведены шаги для преобразования файла RAR в ZIP-архив на C#.
Создайте экземпляр класса Архив для ZIP-архива.
Загрузите архив RAR с помощью класса RarArchive.
Прокрутите записи архива RAR, используя коллекцию RarArchive.Entries.
Для каждой записи в RAR выполните следующие действия:
Извлеките запись в объект MemoryStream с помощью метода RarArchive.Entries[int].Extract(MemoryStream).
Добавьте запись в ZIP, используя метод Archive.CreateEntry(String, MemoryStream).
Наконец, сохраните полученный ZIP-архив, используя метод Archive.Save(String).
В следующем примере кода показано, как преобразовать файл RAR в формат ZIP на C#.
// Создайте экземпляр класса Archive для ZIP-архива.
using (Archive zip = new Archive())
{
// Загрузите RAR-архив
using (RarArchive rar = new RarArchive(@"D:\archvie.rar"))
{
// Перебрать записи файла RAR
for (int i = 0; i < rar.Entries.Count; i++)
{
// Скопируйте каждую запись из RAR в ZIP
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-архив
zip.Save("output.zip");
}
Получите бесплатную лицензию API
Вы можете получить бесплатную временную лицензию на использование Aspose.ZIP для .NET без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как программно преобразовать архив RAR в формат ZIP на C#. Пошаговое руководство и пример кода продемонстрировали преобразование файла RAR в ZIP-архив за несколько шагов. Вы можете прочитать документацию Aspose.ZIP для .NET, чтобы изучить другие функции. Кроме того, вы можете поделиться с нами своими вопросами через наш форум.