Passer au contenu du pied de page
UTILISER IRONZIP

Comment Zipper Des Fichiers Dans Un Dossier Utilisant C#

Les fichiers ZIP sont des fichiers qui contiennent un ou plusieurs fichiers ou dossiers compressés au format ZIP. C'est une façon courante de compresser et d'archiver plusieurs fichiers ou dossiers en un seul fichier. Ils peuvent réduire la taille des données, économiser de l'espace disque et faciliter le transfert de fichiers sur Internet. Dans cet article, vous apprendrez à travailler avec ZIP fichiers en C# en utilisant la bibliothèque IronZIP. Vous verrez comment créer, lire, extraire et mettre à jour des fichiers ZIP par programmation, ainsi que comment utiliser diverses fonctionnalités de IronZIP, telles que le cryptage, la protection par mot de passe et les niveaux de compression. À la fin de cet article, vous serez capable d'utiliser IronZIP pour gérer les fichiers ZIP dans vos applications C# facilement.

Ce que nous couvrirons dans cet article

  1. Installer IronZIP dans notre projet
  2. Créer un fichier ZIP
  3. Créer un fichier ZIP protégé par mot de passe
  4. Extraire un fichier ZIP
  5. Extraire un fichier ZIP protégé par mot de passe
  6. Accéder à une archive ZIP existante

Qu'est-ce que IronZIP ?

IronZIP est une bibliothèque d'archives ZIP puissante et polyvalente pour C# qui vous permet de créer, lire et extraire des fichiers ZIP par programmation. Il prend en charge divers formats d'archives, tels que ZIP, TAR, GZIP et BZIP2. Il prend également en charge la protection par mot de passe, le cryptage et les niveaux de compression. IronZIP est compatible avec .NET 8, 7, 6, Core, Standard et Framework.

IronZIP peut vous aider à gérer divers cas d'utilisation et avantages de travailler avec des fichiers ZIP, tels que :

  1. Création d'un système de sauvegarde : Vous pouvez utiliser IronZIP pour compresser et chiffrer vos fichiers et dossiers importants dans une archive ZIP et les stocker dans un endroit sécurisé. De cette manière, vous pouvez économiser de l'espace disque et protéger vos données contre tout accès non autorisé.
  2. Envoi de pièces jointes par e-mail : Vous pouvez utiliser IronZIP pour réduire la taille de vos pièces jointes par e-mail en les compressant dans un fichier ZIP. Cela peut vous aider à éviter de dépasser la limite de taille de fichier et à accélérer le processus de transmission.
  3. Télécharger des fichiers depuis le web : Vous pouvez utiliser IronZIP pour télécharger et extraire des fichiers ZIP depuis le web, tels que des packages logiciels, des documents, des images et d'autres types de fichiers. Cela peut vous aider à économiser de la bande passante et du temps et à accéder facilement aux fichiers dont vous avez besoin.

Commencer avec IronZIP

Avant d'écrire le code, vous devez installer le package NuGet IronZIP dans votre projet C#. IronZIP est une bibliothèque de compression populaire disponible via NuGet.

Installer la bibliothèque IronZIP

Pour installer IronZIP, vous pouvez utiliser la console du gestionnaire de packages NuGet dans Visual Studio. Il vous suffit d'exécuter la commande suivante :

Install-Package IronZip

Alternativement, vous pouvez télécharger le package directement depuis le site officiel de IronZIP. Une fois installé, vous pouvez commencer par ajouter l'espace de noms suivant en haut de votre code C#.

using IronZip;
using IronZip;
Imports IronZip
$vbLabelText   $csharpLabel

Créer des fichiers ZIP C# dans un dossier

Vous pouvez facilement créer des fichiers ZIP dans un dossier en utilisant IronZIP. Le code suivant zipe tous les fichiers du répertoire spécifié.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
Imports System
Imports System.IO
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Get all files from the specified directory
		Dim fileArray() As String = Directory.GetFiles("D:\Docs\")

		' Create a new ZIP archive
		Using archive = New IronZipArchive()
			' Iterate through each file and add it to the archive
			For Each file In fileArray
				archive.Add(file) ' Add files to the ZIP
			Next file
			' Save the archive to a file
			archive.SaveAs("myZipFile.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Le code C# ci-dessus utilise la bibliothèque IronZIP pour compresser tous les fichiers en un seul fichier ZIP. Le code effectue les actions suivantes :

  • Déclare un tableau de chaînes nommé fileArray et lui assigne le résultat de la méthode Directory.GetFiles, en passant le chemin du répertoire ("D:\Docs") comme paramètre. Cette méthode renvoie un tableau de chaînes contenant les noms complets de tous les fichiers du répertoire spécifié.
  • Crée une nouvelle instance de la classe IronZipArchive, qui représente une archive ZIP en mémoire. L'instance est assignée à une variable nommée archive et est enveloppée dans une instruction using, qui garantit que l'archive ZIP est supprimée lorsque le bloc de code se termine.
  • Itère sur le tableau fileArray en utilisant une boucle foreach, et pour chaque fichier, il appelle la méthode Add de l'objet archive, en passant le nom du fichier en paramètre. Cette méthode ajoute une nouvelle entrée à l'archive ZIP, avec le même nom et contenu que le fichier.
  • Appelle la méthode SaveAs de l'objet archive, en passant le nom du fichier ZIP (" myZipFile.zip ") en paramètre. Cette méthode enregistre l'archive ZIP dans un fichier dans le système de fichiers courant.

De cette manière, vous pouvez facilement créer de nouvelles archives ZIP en quelques lignes de code.

Sortie

La sortie est la suivante :

Comment compresser des fichiers dans un dossier en utilisant C# : Figure 1 - Fichiers de sortie de l'exemple de code précédent

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

IronZIP fournit une méthode simple pour créer des fichiers ZIP protégés par mot de passe. L'exemple de code suivant comprimera les fichiers et créera un nouveau fichier ZIP avec un mot de passe.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
Imports System
Imports System.IO
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Get all files from the specified directory
		Dim fileArray() As String = Directory.GetFiles("D:\Docs\")

		' Create a new ZIP archive
		Using archive = New IronZipArchive()
			' Iterate through each file and add it to the archive
			For Each file In fileArray
				archive.Add(file) ' Add files to the ZIP
			Next file
			' Set Password and Encryption Method
			archive.Encrypt("myPa55word", EncryptionMethods.AES256)
			' Save the archive to a file
			archive.SaveAs("myZipFile.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

La ligne archive.Encrypt("myPa55word", EncryptionMethods.AES256); définit un mot de passe ("myPa55word") pour une archive ZIP en utilisant IronZIP. Elle améliore la sécurité en appliquant un chiffrement AES-256 à l'archive, garantissant que seuls les utilisateurs ayant le bon mot de passe peuvent accéder à son contenu. Cette fonction est précieuse pour protéger les données sensibles pendant le stockage ou le transfert dans les applications C#. Vous devez passer le mode spécifié de l'algorithme de cryptage comme second paramètre.

Le fichier est crypté comme montré ci-dessous.

Sortie

Comment compresser des fichiers dans un dossier en utilisant C# : Figure 2 - Fichier chiffré de sortie de l'exemple de code précédent

Nous avons vu la démonstration de la création d'un fichier ZIP en parcourant les répertoires depuis le chemin spécifié. Maintenant, passons à l'exemple de décompression des fichiers.

Extraire des fichiers depuis une archive ZIP

IronZIP fournit une méthode pour extraire des fichiers d'une archive ZIP en C#. L'exemple de code suivant extraira le fichier compressé dans une archive ZIP.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract all files from the ZIP archive to the specified directory
		IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles")
	End Sub
End Class
$vbLabelText   $csharpLabel

Le code IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles"); utilise IronZIP pour extraire tous les fichiers de "myZipFile.zip" et les placer dans le répertoire "myExtractedFiles". Cette méthode concise simplifie le processus d'extraction des archives ZIP en C#, fournissant une solution pratique pour les tâches d'extraction de fichiers.

Sortie

La sortie est la suivante :

Comment compresser des fichiers dans un dossier en utilisant C# : Figure 3 - Fichiers de sortie de l'exemple de code précédent

Comment extraire depuis un fichier ZIP protégé par mot de passe

IronZIP fournit également une méthode pour extraire des fichiers ZIP protégés par mot de passe. Le code suivant utilisera la méthode IronZIP pour extraire tous les fichiers et répertoires existants du fichier ZIP spécifié.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract all files from the password-protected ZIP archive to the specified directory
		IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word")
	End Sub
End Class
$vbLabelText   $csharpLabel

La méthode ExtractArchiveToDirectory de la classe IronZipArchive extrait toutes les entrées d'une archive ZIP vers un répertoire spécifié. Elle passe trois arguments à la méthode : le chemin du fichier ZIP ("myZipFile.zip"), le chemin du répertoire de destination ("myExtractedFiles") et le mot de passe du fichier ZIP ("myPa55word").

De cette manière, vous pouvez facilement extraire des fichiers ZIP protégés par mot de passe.

Comment accéder à une archive existante

IronZIP fournit des méthodes pour accéder à l'archive existante et visualiser toutes les entrées présentes dans le fichier.

using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Open an existing ZIP archive with a password
		Using archive = New IronZipArchive("myZipFile.zip", "myPa55word")
			' Get entries list
			Dim names As List(Of String) = archive.GetArchiveEntryNames()
			' Iterate through each entry name and print it
			For Each name As String In names
				Console.WriteLine(name)
			Next name
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Le code C# fourni utilise IronZIP pour créer une instance sécurisée IronZipArchive en chargeant un fichier ZIP nommé "myZipFile.zip" avec le mot de passe "myPa55word". Ne passez pas le paramètre de mot de passe si le fichier n'est pas chiffré. Il récupère ensuite et imprime la liste des noms d'entrée (noms de fichiers et de dossiers) dans l'archive ZIP chiffrée.

La méthode GetArchiveEntryNames rassemble les noms d'entrée, et une boucle foreach envoie chaque nom à la console. Cela démontre comment IronZIP permet un accès sécurisé et une récupération des informations d'entrées des archives ZIP protégées par mot de passe de manière concise.

Sortie

Comment compresser des fichiers dans un dossier en utilisant C# : Figure 4 - Sortie de l'exemple de code précédent

Conclusion

En conclusion, IronZIP s'avère être une bibliothèque C# robuste et polyvalente pour travailler avec les fichiers ZIP. Ses capacités vont au-delà de la simple compression et extraction, offrant des fonctionnalités telles que la protection par mot de passe, le cryptage et la compatibilité avec divers formats d'archives. Que vous créiez des systèmes de sauvegarde, gériez des pièces jointes par e-mail ou téléchargiez des fichiers depuis le web, IronZIP simplifie ces tâches avec simplicité et efficacité.

En intégrant IronZIP dans vos applications C#, vous obtenez un outil puissant pour gérer les fichiers ZIP, améliorer la sécurité des données et optimiser les processus de transfert de fichiers. Vous pouvez bénéficier d'un essai gratuit si nécessaire.

Questions Fréquemment Posées

Comment puis-je créer un fichier ZIP à partir d'un dossier en C# ?

Vous pouvez utiliser IronZIP pour créer un fichier ZIP à partir d'un dossier en parcourant les fichiers dans le répertoire et en les ajoutant à une nouvelle archive ZIP. Utilisez la classe IronZipArchive et appelez la méthode SaveAs pour enregistrer le fichier ZIP.

Comment installer IronZIP dans un projet C#?

Installez IronZIP dans votre projet C# en utilisant le gestionnaire de packages NuGet dans Visual Studio. Exécutez la commande Install-Package IronZip dans la console du gestionnaire de packages ou téléchargez-le depuis le site officiel d'IronZIP.

Quels formats IronZIP prend-il en charge pour la gestion des fichiers ZIP ?

IronZIP prend en charge divers formats d'archive y compris ZIP, TAR, GZIP et BZIP2, offrant une flexibilité pour différents besoins de compression et d'archivage.

Puis-je chiffrer les fichiers ZIP créés en C# ?

Oui, vous pouvez chiffrer des fichiers ZIP en utilisant IronZIP en appliquant la méthode Encrypt avec le chiffrement AES-256 pour sécuriser vos données dans l'archive.

Comment puis-je extraire des fichiers d'un fichier ZIP en C# ?

Pour extraire des fichiers d'une archive ZIP en utilisant IronZIP, utilisez la méthode ExtractArchiveToDirectory, en spécifiant le fichier ZIP source et le répertoire de destination.

Est-il possible de gérer les fichiers ZIP protégés par mot de passe en C# ?

Oui, vous pouvez gérer des fichiers ZIP protégés par mot de passe avec IronZIP en fournissant le mot de passe lors de l'utilisation de méthodes telles que ExtractArchiveToDirectory pour accéder aux contenus en toute sécurité.

Quels sont les avantages de l'utilisation d'IronZIP pour la gestion des fichiers ZIP ?

IronZIP simplifie des tâches comme la sauvegarde de fichiers, la gestion des pièces jointes d'email et les téléchargements web en offrant des fonctionnalités telles que le chiffrement, la protection par mot de passe et le support de plusieurs formats d'archive.

IronZIP est compatible avec .NET 8, 7, 6, Core, Standard et Framework, ce qui le rend flexible pour l'intégration dans divers projets C#.

IronZIP est compatible avec .NET 8, 7, 6, Core, Standard et Framework, ce qui le rend flexible pour une intégration dans divers projets C#.

Les développeurs peuvent accéder à un essai gratuit d'IronZIP en visitant la section licences ou téléchargements du site d'IronZIP pour évaluer ses fonctionnalités.

Quel est l'avantage d'utiliser les fichiers ZIP pour le transfert de données ?

Les fichiers ZIP sont avantageux pour le transfert de données car ils réduisent la taille des fichiers, économisent de l'espace disque et facilitent l'envoi de plusieurs fichiers sur Internet de manière efficace.

Les fichiers ZIP sont bénéfiques pour le transfert de données car ils réduisent la taille des fichiers, économisent de l'espace disque et facilitent l'envoi de plusieurs fichiers sur Internet de manière efficace.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite