
RAR é um formato de arquivo de arquivo comumente usado que suporta compactação de dados sem perdas. Muitas vezes, as pessoas preferem RAR em vez de ZIP porque fornece uma taxa de compactação melhor e mantém o tamanho do arquivo menor. No entanto, em certos casos, pode ser necessário converter arquivos RAR em arquivos ZIP. Para conseguir isso, este artigo aborda como converter um arquivo RAR para ZIP programaticamente em C#.
API C# .NET para conversão de RAR para ZIP
Aspose.ZIP for .NET é uma API de arquivamento poderosa que suporta a criação e manipulação de formatos de arquivo populares. Utilizaremos esta API para converter os arquivos RAR para o formato ZIP. Para usar a API, você pode instalá-la de NuGet ou baixar sua DLL da seção de downloads.
PM> Install-Package Aspose.Zip
Converter um arquivo RAR para ZIP em C#
Os arquivos RAR podem ser convertidos para o formato ZIP em poucos passos usando o Aspose.ZIP para .NET. A seguir estão as etapas para converter um arquivo RAR em um arquivo ZIP em C#.
Crie uma instância da classe Archive para o arquivo ZIP.
Carregue o arquivo RAR usando a classe RarArchive.
Percorra as entradas do arquivo RAR usando a coleção RarArchive.Entries.
Para cada entrada no RAR, execute as seguintes etapas:
Extraia a entrada para o objeto MemoryStream usando o método RarArchive.Entries[int].Extract(MemoryStream).
Adicione a entrada ao ZIP usando o método Archive.CreateEntry(String, MemoryStream).
Finalmente, salve o arquivo ZIP resultante usando o método Archive.Save(String).
O exemplo de código a seguir mostra como converter um arquivo RAR para o formato ZIP em C#.
// Crie uma instância da classe Archive para o arquivo ZIP
using (Archive zip = new Archive())
{
// Carregar o arquivo RAR
using (RarArchive rar = new RarArchive(@"D:\archvie.rar"))
{
// Percorrer as entradas do arquivo RAR
for (int i = 0; i < rar.Entries.Count; i++)
{
// Copie cada entrada de RAR para 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);
}
}
// Salve o arquivo ZIP resultante
zip.Save("output.zip");
}
Obtenha uma licença de API gratuita
Você pode obter uma licença temporária gratuita para usar o Aspose.ZIP para .NET sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como converter um arquivo RAR para o formato ZIP programaticamente em C#. O guia passo a passo e a amostra de código demonstraram a conversão de um arquivo RAR em um arquivo ZIP em poucas etapas. Você pode ler a documentação do Aspose.ZIP para .NET para explorar outros recursos. Além disso, você pode compartilhar suas dúvidas conosco através do nosso fórum.