1. Des produits
  2.   Compression
  3.   .NET
  4.   SharpZipLib
 
  

Bibliothèque C# .NET pour les formats de fichiers de compression

API .NET gratuite Open Source pour les formats d'archivage de fichiers tels que ZIP, GZIP, TAR et BZIP2.

La bibliothèque SharpZipLib est entièrement écrite en C# pour la plate-forme .NET. Il est implémenté en tant qu'assemblage et vous pouvez donc l'incorporer dans d'autres projets (dans n'importe quel langage .NET).

Il a été porté à l'origine à partir de la bibliothèque GNU Classpath java.util.zip afin de pouvoir être utilisé avec SharpDevelop, qui nécessitait une compression GZIP et ZIP. Plus tard, en raison de la forte demande des utilisateurs, l'archivage BZIP2 et Tar ont également été inclus dans la bibliothèque.

Previous Next

Premiers pas avec SharpZipLib

Vous devez avoir .NET Framework 4.5 ou supérieur pour configurer SharpZipLib. Une fois que vous avez rempli les conditions préalables, vous pouvez télécharger manuellement le référentiel à partir de GitHub ou récupérer directement l'assembly à partir de NuGet.

La méthode recommandée pour installer SharpZipLib est à partir de NuGet car il est disponible en tant que Paquet NuGet

Installer SharpZipLib à partir de NuGet

 Install-Package SharpZipLib

NET Library pour créer et extraire des fichiers ZIP

SharpZipLib permet aux développeurs de logiciels de créer un fichier ZIP dans leurs propres applications .NET. Les développeurs peuvent facilement compresser tous les fichiers disponibles dans un répertoire et les affecter dans un seul fichier zip. ZIP est l'un des formats de fichiers de compression les plus populaires et donne aux utilisateurs la possibilité de réduire la taille des fichiers. L'API prend également en charge l'extraction du contenu des fichiers ZIP vers un emplacement choisi par l'utilisateur.

Extraire des fichiers 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);
    }
  }
}

Créer un fichier ZIP protégé par mot de passe

SharpZipLib donne aux développeurs de logiciels la possibilité de compresser tous les fichiers d'un dossier dans un fichier ZIP et de définir un mot de passe pour les fichiers créés. Si vous souhaitez créer des fichiers ZIP sans protection, définissez sa valeur sur null ou ne le déclarez pas pour laisser le fichier sans aucune protection par mot de passe. Il prend en charge un grand nombre de fichiers.

Créer un fichier ZIP protégé par mot de passe - 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();
  }
}
 Français