Los archivos como ZIP, RAR, TAR, GZIP, BZIP2 se usan comúnmente para almacenar más de un archivo y carpeta en un solo contenedor. Otra razón principal para archivar archivos es reducir el tamaño total del archivo mediante algoritmos de compresión. Al igual que analizar y extraer datos de documentos de varios formatos de archivo, puede tratar los archivos de almacenamiento de la misma manera. Puede extraer el texto, las imágenes e incluso los metadatos de los archivos que están comprimidos dentro de los archivos. En este artículo, discutiremos cómo extraer los datos de archivos ZIP usando C# con sus aplicaciones .NET.

Los siguientes temas se tratan a continuación:

.NET API para extraer datos de archivos ZIP

GroupDocs.Parser proporciona la solución de análisis de documentos para desarrolladores. Usaré su .NET API para extraer datos de archivos ZIP dentro de los ejemplos de C# de este artículo. La API permite además la extracción de texto, imágenes y metadatos de una larga lista de formatos de documentos admitidos como documentos de procesamiento de texto, presentaciones, hojas de cálculo, correos electrónicos, bases de datos, libros electrónicos y muchos otros.

Puede descargar el instalador DLL o MSI desde la sección de descargas o instalar la API agregando su paquete a su aplicación .NET a través de NuGet.

PM> Install-Package GroupDocs.Parser

Cómo extraer datos de archivos ZIP en C#

GroupDocs.Parser for .NET admite la extracción de datos de varios formatos de archivo de compresión como ZIP, RAR, TAR, BZIP2 y GZIP. Después de recuperar la colección de archivos del archivo comprimido, puede extraer cualquier tipo de datos de cada archivo.

Los siguientes pasos muestran cómo extraer datos de archivos ZIP y recuperar texto de cada archivo adjunto en C#.

  • Cargue el archivo ZIP usando la clase Parser.
  • Obtenga los archivos adjuntos usando el método GetContainer
  • Recorrer la colección de archivos adjuntos.
  • Para cada archivo adjunto, puede obtener sus diferentes tipos de datos utilizando los métodos respectivos de la clase Parser.

El código fuente muestra cómo extraer los datos de los archivos ZIP usando C#. En este ejemplo, extraeré el texto completo de todos los archivos dentro del archivo ZIP.

// Extraer datos de archivos ZIP en C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Extraer archivos adjuntos del contenedor
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Iterar sobre la colección de entidades
    foreach (ContainerItem item in attachments)
    {
        // Imprima la INFORMACIÓN DEL ARCHIVO
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // Extraiga el texto de la entidad ZIP
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

La salida del código fuente anterior muestra el texto recuperado de uno de los archivos PDF dentro del archivo ZIP.

 -----------------------------------
 Name: sample.pdf
 File Size: 33370 Bytes
 -----------------------------------

 Heading

 This is the first paragraph of the sample document that contains some sample
 text, bulleted list, numbered list and more.

    •  Bullet Item 1
    •  Bullet Item 2
    •  Bullet Item 3
 
 This is the second paragraph of the sample document and after this, there is a
 numbered list: 

    1. Numbered Item 1
    2. Numbered Item 2
    3. Numbered Item 3 

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para utilizar la API sin las limitaciones de evaluación.

Conclusión

En resumen, aprendió a extraer datos de archivos ZIP usando C# dentro de su aplicación .NET. Más específicamente, ahora puede extraer datos de archivos ZIP, RAR, TAR, GZIP y BZIP. Incluso puede crear su propia aplicación .NET de extracción de datos para archivos comprimidos. Para obtener más detalles o aprender sobre la API, visite la documentación. Para consultas, contáctenos a través del foro.

Ver también