Convertir RAR a ZIP en C#

La conversión de archivos RAR al formato ZIP es un requisito habitual cuando se trabaja con archivos comprimidos. El formato ZIP es ampliamente compatible en varias plataformas, lo que lo convierte en una opción más versátil para compartir y almacenar. En esta publicación del blog, analizaremos una solución que utiliza C# para convertir archivos RAR al formato ZIP.

¿Por qué convertir RAR a ZIP?

Hay varias razones para convertir archivos RAR a ZIP:

  • Compatibilidad entre plataformas: ZIP es compatible con más sistemas y plataformas en comparación con RAR.

  • Soporte nativo: muchos sistemas operativos, como Windows y macOS, pueden extraer archivos ZIP de forma nativa sin necesidad de software de terceros.

  • Eficiencia de compresión: La compresión ZIP es eficiente y ofrece un equilibrio entre el tamaño del archivo y la velocidad.

Ahora, pasemos a la instalación, la guía paso a paso y el ejemplo de código.

Convertidor de archivos RAR a ZIP: configuración de la API de C#

Puede convertir los formatos de archivo comprimidos en su extremo instalando Conholdate.Total for .NET con el siguiente comando de instalación en la consola del Administrador de paquetes NuGet:

PM> NuGet\Install-Package Conholdate.Total

Convertir RAR a ZIP en C#

Para lograrlo, utilizaremos la biblioteca Aspose.Zip, que forma parte de la suite Conholdate.Total para .NET. A continuación, se muestra un desglose paso a paso de cómo convertir un archivo RAR a un archivo ZIP:

  • Inicializar un archivo ZIP: comenzamos creando un nuevo objeto Aspose.Zip.Archive que representará el archivo ZIP.
  • Abrir y extraer el archivo RAR: cargue el archivo RAR con Aspose.Zip.Rar.RarArchive y extraiga cada entrada. Los archivos y directorios dentro del archivo RAR se manejan por separado.
  • Agregar entradas al archivo ZIP: para cada entrada (archivo o directorio) del archivo RAR, la agregamos al archivo ZIP. Los archivos se escriben como entradas ZIP, mientras que los directorios se crean como entradas vacías.
  • Guardar el archivo ZIP: después de haber agregado todas las entradas, guarde el archivo ZIP en la ubicación de salida deseada.

El siguiente fragmento de código muestra cómo convertir RAR a ZIP en 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");
}

Licencia de evaluación gratuita

Puede obtener una licencia temporal gratuita para probar esta y muchas otras funciones para manipular o convertir los archivos comprimidos en su entorno.

Conclusión

Para convertir un archivo RAR en un archivo ZIP en C#, solo se necesitan unas cuantas llamadas a métodos sin tener que preocuparse por los detalles menores o la estructura de los formatos de archivo comprimidos. Siguiendo este enfoque, puede extraer fácilmente archivos de un archivo RAR y comprimirlos en un formato ZIP. Esto garantiza que sus archivos sean más compatibles y accesibles en diferentes plataformas. Por otra parte, si desea comentar alguna de sus consultas, escríbanos a forum.

Preguntas frecuentes

¿Se conserva la estructura del directorio durante la conversión?

Sí, el código conserva la estructura del directorio del archivo RAR al agregar entradas al archivo ZIP.

¿Necesito software de terceros para extraer archivos ZIP?

No, los archivos ZIP se pueden extraer de forma nativa en la mayoría de las plataformas, incluidas Windows y macOS.

¿Puedo proteger con contraseña el archivo ZIP?

Sí, Aspose.ZIP permite el cifrado y la protección con contraseña al crear archivos ZIP.

Ver también