Преобразование RAR в ZIP через C#
Contents
[
Hide
Show
]Если вы хотите преобразовать RAR-архив в ZIP, прочтите эту статью.
Конверсия
Aspose.ZIP API предоставляет класс RarArchive для извлечения архивов RAR. Мы можем извлечь запись в память, не сохраняя ее в промежуточном хранилище, и сразу передать в ZIP-архив.
Убедитесь, что у вас достаточно виртуальной памяти для хранения содержимого всех записей.
Перенос записи
В следующем примере кода показано, как извлечь записи из архива RAR и сразу же поместить их в ZIP-архив. Записи, представляющие собой каталоги, добавленные с косой чертой для указания их типа.
1 using (Archive zip = new Archive())
2 {
3 using (RarArchive rar = new RarArchive(@"D:\archvie.rar"))
4 {
5 for (int i = 0; i < rar.Entries.Count; i++)
6 {
7 if (!rar.Entries[i].IsDirectory)
8 {
9 var ms = new MemoryStream();
10 rar.Entries[i].Extract(ms);
11 ms.Seek(0, SeekOrigin.Begin);
12 zip.CreateEntry(rar.Entries[i].Name, ms);
13 }
14 else
15 zip.CreateEntry(rar.Entries[i].Name + "/", Stream.Null);
16 }
17 }
18
19 zip.Save("output.zip");
20 }