Преобразование RAR в ZIP через C#

Если вы хотите преобразовать 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    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.