UTILISATION D'IRONZIP

Comment ouvrir un fichier Zip en C#

Publié janvier 4, 2024
Partager:

ZIP est un format de système de fichiers d'entrée d'archives qui prend en charge la compression des données sans perte. Un fichier ZIP peut contenir un ou plusieurs fichiers ou répertoires qui peuvent avoir été compressés. Le format de fichier ZIP permet plusieurs algorithmes de compression, mais DEFLATE est le plus courant. Le format ZIP a ensuite été rapidement pris en charge par de nombreux logiciels. Les principaux fournisseurs de systèmes d'exploitation prennent en charge les archives ZIP depuis longtemps. Microsoft a intégré la prise en charge des fichiers ZIP dès Windows 98 et les autres ont suivi.

Dans ce blog, nous allons explorer un moyen moderne, facile et efficace d'ouvrir des fichiers d'archives ZIP ou des fichiers extraits à l'aide de IronZIP. Nous allons découvrir les fichiers ZIP en général et leurs avantages. Nous verrons ensuite les options disponibles dans l'espace de noms du système pour travailler avec le format de fichier ZIP. Nous étudierons ensuite les instructions étape par étape pour ouvrir le fichier ZIP, extraire le fichier ZIP dans un dossier temporaire, créer un nouveau fichier ZIP et ajouter des fichiers à des fichiers ZIP existants.

Avantages de l'utilisation des fichiers ZIP dans les applications logicielles

  1. **Cette technique réduit la taille des fichiers/dossiers archivés en utilisant divers algorithmes de compression tels que Implode, Deflate, Deflate64, bzip2, LZMA, WavPack, PPMd, etc.
  2. Temps de transfert réduit: La réduction de la taille des fichiers se traduit par des temps de transfert plus courts, en particulier lors de l'envoi de fichiers sur Internet. Ceci est particulièrement avantageux pour les pièces jointes aux courriers électroniques et pour le chargement ou le téléchargement de fichiers à partir de sites web.
  3. Consolidation de fichiers : Les fichiers ZIP vous permettent de consolider plusieurs fichiers en une seule archive, réduisant ainsi le nombre de fichiers à gérer. Cette fonction est utile pour organiser des projets ou distribuer des logiciels composés de plusieurs fichiers.
  4. Mot de passe Protection : De nombreux utilitaires ZIP offrent la possibilité de protéger l'archive par un mot de passe, ajoutant ainsi une couche de sécurité à vos fichiers. Cette fonction est utile lorsque vous souhaitez restreindre l'accès au contenu du fichier ZIP.

Créer des archives ZIP et extraire des fichiers ZIP à l'aide d'IronZIP

Introduction à la bibliothèque IronZIP et à sa documentation ici. Dans les applications C#, les fichiers ZIP peuvent être créés et extraits de différentes manières. Le paquet NuGet IronZIP possède toutes les fonctionnalités pour archiver des fichiers dans différents formats ZIP, TAR, GZIP, et BZIP2. Vous trouverez ci-dessous des exemples d'étapes sur l'utilisation d'IronZIP dans la programmation d'applications modernes pour créer des applications de nouvelle génération permettant d'ouvrir des fichiers ZIP, d'extraire des fichiers ZIP, de créer de nouveaux fichiers ZIP, etc.

Étape 1. Créer une application console .NET Core

Créer un projet

l'application console .NET peut être créée à l'aide de Visual Studio. Ouvrez Visual Studio et sélectionnez Créer un projet. Vous trouverez ici différents modèles pour créer un projet. La manière la plus simple de démontrer ou de tester le code est de créer une application console. Nous allons sélectionner le modèle de projet Console App.

Comment ouvrir un fichier Zip en C# : Figure 1 - Nouveau projet

Saisir le nom du projet

Dans la fenêtre ci-dessous, vous pouvez saisir le nom du projet, l'emplacement du projet à stocker dans le système de fichiers et le dernier chemin d'accès au dossier de la solution. Vous pouvez conserver les dossiers de la solution et du projet à l'identique ou les placer dans des dossiers différents.

Comment ouvrir un fichier Zip en C# : Figure 2 - Configuration du projet

Sélectionner la version du Framework .NET

L'étape suivante consiste à sélectionner la version du Framework .NET pour le projet. Si vous souhaitez développer dans une version spécifique, indiquez la version qui vous convient, sinon sélectionnez toujours la dernière version stable pour créer un projet. La dernière version peut être téléchargée à partir du site web de Microsoft. Cliquez ensuite sur Créer pour générer l'application console.

Comment ouvrir un fichier Zip en C# : Figure 3 - Cadre cible

Cette opération crée le projet par défaut à partir du modèle et stocke les fichiers du projet et de la solution dans les répertoires spécifiés. Une fois le projet créé, il ressemblera à ce qui suit. Parfois, la classe n'est pas utilisée dans le programme.cs dans les dernières versions.

using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string [] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string [] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
Imports System
' See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!")
Dim MyApp As namespace ' Note: actual namespace depends on the project name.
If True Then
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	internal class Program
'	{
'		static void Main(string [] args)
'		{
'			Console.WriteLine("Hello World!");
'		}
'	}
End If
VB   C#

Pour créer un nouveau fichier ZIP et extraire tous les fichiers d'archive ZIP, nous pouvons utiliser System.IO.Compression à partir des bibliothèques par défaut. Dans le code ci-dessus ZipFile.OpenRead (Fichier ZIP) et ZipFile.Open les méthodes statiques peuvent être utilisées pour ouvrir des fichiers ZIP ou extraire des fichiers ZIP.

using System.IO.Compression;  
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath, 
System.IO.Compression.ZipArchive zipArchive)
{
    var file = Path.GetFileName(filePath); // get file name in var file
    zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip,     ZipArchiveMode.Create))
{
    AddEntry(file1, archive);
    AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
    Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
using System.IO.Compression;  
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath, 
System.IO.Compression.ZipArchive zipArchive)
{
    var file = Path.GetFileName(filePath); // get file name in var file
    zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip,     ZipArchiveMode.Create))
{
    AddEntry(file1, archive);
    AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
    Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
Imports System.IO.Compression
Console.WriteLine("-----------Zip - Unzip-----------")
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'static void AddEntry(string filePath, System.IO.Compression.ZipArchive zipArchive)
'{
'	var file = Path.GetFileName(filePath); ' get file name in var file
'	zipArchive.CreateEntryFromFile(filePath, file);
'}
Dim zip = "myFile.zip"
Using archive As System.IO.Compression.ZipArchive = ZipFile.OpenRead(zip, ZipArchiveMode.Create)
	AddEntry(file1, archive)
	AddEntry(file2, archive)
End Using
Dim dirToExtract = "extract"
If Directory.Exists(dirToExtract) = False Then
	Directory.CreateDirectory(dirToExtract)
End If
ZipFile.ExtractToDirectory(zip, dirToExtract) 'extracted file
VB   C#

Dans le code ci-dessus, nous avons un fichier ZIP nommé monFichier.zip, et nous utilisons l'espace de noms du système. la méthode OpenRead est utilisée pour ouvrir le fichier ZIP dans le mode spécifié. Cette fonction peut également être utilisée pour créer de nouveaux fichiers d'archives ZIP. Une fois ouvert, nous pouvons ajouter une nouvelle entrée d'archive en utilisant la méthode AddEntry et ensuite ExtractToDirectory extrait les fichiers d'archive ZIP ou les fichiers sélectionnés dans le répertoire spécifié. Le répertoire est vérifié s'il existe. S'il n'existe pas, un répertoire est créé à l'aide de Directory.CreateDirectory. dirToExtract est le chemin d'accès au répertoire pour extraire les fichiers d'archives ZIP. La dernière ligne du code ZipFile.ExtractToDirectory(zip, dirToExtract) extrait un fichier ZIP. Tous les fichiers sont enregistrés dans le chemin du répertoire.

Étape 2. Installation d'IronZIP à l'aide du gestionnaire de paquets NuGet

Ouvrez le gestionnaire de projets à partir de Visual Studio et recherchez le paquetage IronZIP. Sélectionnez ensuite la dernière version et cliquez sur Installer. Vous pouvez modifier la version à installer à partir du menu déroulant. Cliquez ensuite sur Installer.

Comment ouvrir un fichier Zip en C# : Figure 4 - Gestionnaire de paquets NuGet

Créer un fichier d'archive ZIP et ajouter des fichiers à l'aide d'IronZIP

Comment ouvrir un fichier Zip en C# : Figure 5 - IronZIP

IronZIP est une bibliothèque de compression et de décompression d'archives développée par Iron Software. Outre le format ZIP, largement utilisé, il peut également gérer les formats TAR, GZIP et BZIP2.

IronZIP est une bibliothèque d'archives ZIP C# qui privilégie la précision, la facilité d'utilisation et la rapidité. L'API conviviale permet aux développeurs d'ajouter facilement des fonctionnalités d'archivage aux projets .NET modernes en quelques minutes.

IronZIP présente de nombreux avantages par rapport à la bibliothèque System.Io.Compression. Vous pouvez spécifier le taux de compression que vous souhaitez lors de la compression et utiliser différents algorithmes de compression ZIP, TAR, GZIP, BZIP2. Il prend également en charge les plateformes mobiles, web et de bureau, ainsi que diverses versions .NET.

Créer un fichier d'archive ZIP et ajouter des fichiers à l'aide d'IronZIP

IronZIP possède la classe IronArchive qui peut être utilisée pour créer des fichiers ZIP, et extraire des fichiers ZIP. Elle supporte également la création de fichiers d'archives TAR, GZIP, et BZIP2 en utilisant une seule bibliothèque. Voici le code pour créer un fichier ZIP. la classe IronArchive crée/ouvre les fichiers ZIP et la méthode archive.Add est utilisée pour ajouter des entrées de fichiers à l'archive comme ci-dessous.

// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
    // Add files to the zip 
    archive.Add(file1);
    archive.Add(file2);
    archive.SaveAs(archivePath);
}
// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
    // Add files to the zip 
    archive.Add(file1);
    archive.Add(file2);
    archive.SaveAs(archivePath);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Le code source initial contient la configuration nécessaire pour spécifier le nom du fichier d'archive ZIP et vérifier si le répertoire spécifié existe. Ensuite, nous archivons les fichiers pour créer un fichier ZIP à l'aide de la méthode Add. Le deuxième paramètre du paramètre de compression est 1 pour plus bas et 9 pour plus haut. les fichiers txt peuvent être compressés au maximum à l'aide de 9 sans perte et les fichiers image peuvent être compressés à un niveau inférieur pour éviter la perte de données.

Ouvrir le fichier d'archive ZIP à l'aide d'IronZIP

la classe IronArchive peut également être utilisée pour extraire les fichiers de l'archive ZIP. Tous les fichiers sont extraits à l'aide de la classe IronArchive.ExtractArchiveToDirectory qui permet d'extraire tous les fichiers dans des répertoires spécifiques comme ci-dessous.

var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
    Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
    Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
Dim extractionPath = "IronZipFiles"
' extract files from zip
If Directory.Exists(extractionPath) = False Then
	Directory.CreateDirectory(extractionPath)
End If
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath)
VB   C#

Le code ci-dessus extrait les fichiers ZIP dans un répertoire. Le code vérifie si le répertoire existe, puis le fichier d'archive ZIP est extrait dans le répertoire spécifié.

Licence (essai gratuit disponible)

Pour que le code ci-dessus fonctionne, une clé de licence est nécessaire. Cette clé doit être placée dans appsettings.json

"IronZip.LicenseKey": "your lincese key"
"IronZip.LicenseKey": "your lincese key"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'"IronZip.LicenseKey": "your lincese key"
VB   C#

Une licence d'essai est disponible pour les développeurs qui souhaitent s'enregistrer ici et oui, aucune carte de crédit n'est requise pour une licence d'essai. Il suffit de fournir l'adresse électronique et de s'inscrire pour un essai gratuit.

Ajouter des fichiers à un fichier d'archive ZIP existant

Utilisez la méthode statique FromFile de IronZIP pour ouvrir une archive existante. Cette méthode nécessite également de spécifier le nom de fichier de la nouvelle archive qui sera créée en sortie.

//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
    // Add files
    file.Add(file3);
}
//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
    // Add files
    file.Add(file3);
}
'add to existing archive
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"
Using file = IronArchive.FromFile(archivePath, archivePlusPath)
	' Add files
	file.Add(file3)
End Using
VB   C#

Le code utilise la méthode statique IronArchive.FromFile pour ouvrir le fichier ZIP existant et ajouter le nouveau fichier en tant qu'entrée d'archive. Une fois que le fichier est éliminé, il est sauvegardé avec succès.

Mises à jour

La bibliothèque IronZIP est constamment mise à jour en fonction des commentaires des clients/utilisateurs et toutes les mises à jour peuvent être trouvées ici.

Conclusion

En conclusion, la programmation de fichiers ZIP est une compétence essentielle à acquérir dans le cadre du développement d'applications modernes où les coûts de stockage et de transfert de données sont facturés par les fournisseurs d'hébergement en nuage. La connaissance de cette compétence peut aider les programmeurs à réduire le coût de l'application et à en améliorer les performances.

En suivant les étapes d'installation et en explorant les exemples de code fournis, les développeurs peuvent rapidement tirer parti de la puissance de IronZIP pour créer de nouveaux fichiers et gérer les tâches de Zip/Unzip en toute simplicité. Alors que de plus en plus d'applications sont modernisées et déplacées vers l'informatique en nuage, le fait de disposer d'une bibliothèque ZIP fiable telle que IronZIP dote les développeurs C# des outils nécessaires pour répondre aux exigences du développement d'applications modernes. Alors, embrassez le pouvoir de la IronZIP et découvrez de nouvelles possibilités de travailler avec des fichiers ZIP dans vos applications C#.

IronZIP offre une assistance étendue à ses développeurs. Pour en savoir plus sur la façon dont IronZIP pour les travaux en C#, voir ici. IronZIP offre une licence d'essai gratuite qui est une excellente occasion de connaître IronZIP et ses caractéristiques.

Iron Software possède de nombreuses autres bibliothèques, explorez-les pour acquérir plus de connaissances et mettre à jour vos compétences pour programmer/développer des applications modernes.

< PRÉCÉDENT
Comment décompresser des fichiers dans .NET Core
SUIVANT >
Comment créer un fichier Zip en C# .NET Core