1. Productos
  2.   Compresión
  3.   .NET
  4.   SharpZipLib
 
  

Biblioteca C# .NET para formatos de archivo de compresión

API .NET gratuita de código abierto para formatos de archivador de archivos como ZIP, GZIP, TAR y BZIP2.

La biblioteca SharpZipLib está escrita completamente en C# para la plataforma .NET. Se implementa como un ensamblado por lo que puedes incorporarlo a otros proyectos (en cualquier lenguaje .NET).

Originalmente fue portado desde la biblioteca GNU Classpath java.util.zip para que pudiera usarse con SharpDevelop, que necesitaba compresión GZIP y ZIP. Más tarde, debido a la gran demanda de los usuarios, el archivo BZIP2 y Tar también se incluyeron en la biblioteca.

Previous Next

Primeros pasos con SharpZipLib

Debe tener .NET Framework 4.5 o superior para configurar SharpZipLib. Una vez que haya cumplido con los requisitos previos, puede descargar manualmente el repositorio desde GitHub o obtener directamente el ensamblado de NuGet.

La forma recomendada de instalar SharpZipLib es desde NuGet, ya que está disponible como un Paquete NuGet

Instalar SharpZipLib desde NuGet

 Install-Package SharpZipLib

NET Library para crear y extraer archivos ZIP

SharpZipLib permite a los desarrolladores de software crear un archivo ZIP dentro de sus propias aplicaciones .NET. Los desarrolladores pueden comprimir fácilmente todos los archivos disponibles dentro de un directorio y asignarlos a un solo archivo zip. ZIP es uno de los formatos de archivo de compresión más populares y brinda a los usuarios la posibilidad de reducir el tamaño de los archivos. La API también admite la extracción del contenido de los archivos ZIP en el lugar que elija el usuario.

Extraer archivos de ZIP - C#

// Open zip file
using (Stream fsInput = File.OpenRead("D:\\input.zip"))
using (var zf = new ZipFile(fsInput))
{
  // Set password if required
  zf.Password = "12345";
  // Unzip data
  foreach (ZipEntry zipEntry in zf)
  {
    if (!zipEntry.IsFile)
    {
      // Ignore directories
      continue;
    }
    String entryFileName = zipEntry.Name;
    var directoryName = "D:\\output\\test";
    if (directoryName.Length > 0)
    {
      Directory.CreateDirectory(directoryName);
    }
    var buffer = new byte[4096];
    using (var zipStream = zf.GetInputStream(zipEntry))
    using (Stream fsOutput = File.Create("data.zip"))
    {
      StreamUtils.Copy(zipStream, fsOutput, buffer);
    }
  }
}

Crear un archivo ZIP protegido con contraseña

SharpZipLib brinda a los desarrolladores de software la capacidad de comprimir todos los archivos dentro de una carpeta en un archivo ZIP y definir una contraseña para los archivos creados. Si desea crear archivos ZIP sin protección, establezca su valor en nulo o no lo declare para dejar el archivo sin protección con contraseña. Admite una gran cantidad de archivos.

Cree un archivo ZIP protegido con contraseña - C#

// Create a new ZIP file 
using (FileStream fsOut = File.Create("D:\\output.zip"))
using (var zipStream = new ZipOutputStream(fsOut))
{
  //0-9, 9 being the highest level of compression
  zipStream.SetLevel(3);
  // Set password
  zipStream.Password = "12345";
  // Add files
  var files = Directory.GetFiles("D:\\sample");
  foreach (var filename in files)
  {
    var fi = new FileInfo(filename);
    // Make the name in zip based on the folder
    var entryName = filename.Substring(1);
    // Remove drive from name and fixe slash direction
    entryName = ZipEntry.CleanName(entryName);
    var newEntry = new ZipEntry(entryName);
    // Note the zip format stores 2 second granularity
    newEntry.DateTime = fi.LastWriteTime;
    newEntry.Size = fi.Length;
    zipStream.PutNextEntry(newEntry);
    var buffer = new byte[4096];
    using (FileStream fsInput = File.OpenRead(filename))
    {
      StreamUtils.Copy(fsInput, zipStream, buffer);
    }
    zipStream.CloseEntry();
  }
}
 Español