Passer au contenu du pied de page
UTILISER IRONZIP

Comment Ouvrir Un Fichier Zip en C#

ZIP est un format de système de fichiers d'entrée d'archive qui prend en charge la compression de données sans perte. Un fichier ZIP peut contenir un ou plusieurs fichiers ou répertoires qui ont pu être compressés. Le format de fichier ZIP permet plusieurs algorithmes de compression, bien que DEFLATE soit le plus courant. Le format ZIP a rapidement été pris en charge par de nombreux utilitaires logiciels. Les principaux fournisseurs de systèmes d'exploitation incluent depuis longtemps le support des archives ZIP. Microsoft a inclus le support des fichiers ZIP à partir de Windows 98 et les autres ont suivi.

Dans ce blog, nous allons explorer une méthode moderne, facile et efficace pour ouvrir des fichiers d'archive ZIP ou des fichiers extraits à l'aide d'IronZIP. Nous allons apprendre les fichiers ZIP en général et ses avantages. Ensuite, nous verrons les options disponibles dans l'espace de noms système pour travailler avec le format de fichier ZIP. Ensuite, nous explorerons des instructions détaillées pour ouvrir le fichier ZIP, extraire le fichier ZIP vers 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. Compression : 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 : Des tailles de fichier plus petites signifient des temps de transfert plus rapides, surtout lors de l'envoi de fichiers via Internet. Cela est particulièrement avantageux pour les pièces jointes par email et le téléchargement ou l'envoi 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 que vous devez gérer. Cela est utile pour organiser des projets ou distribuer des logiciels qui consistent en plusieurs fichiers.
  4. Protection par mot de passe : De nombreux utilitaires ZIP offrent la possibilité de protéger l'archive par un mot de passe, ajoutant une couche de sécurité à vos fichiers. Cela 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

L'introduction à la bibliothèque IronZIP et la documentation peuvent être trouvées ici. Dans les applications C#, les fichiers ZIP peuvent être créés et extraits de diverses façons. Le package NuGet IronZIP possède toutes les fonctionnalités pour archiver des fichiers dans différents formats : ZIP, TAR, GZIP et BZIP2. Ci-dessous sont les étapes d'exemple pour utiliser IronZIP dans la programmation d'application moderne pour construire des applications de nouvelle génération pour ouvrir des fichiers ZIP, extraire des fichiers ZIP, créer de nouveaux fichiers ZIP, etc.

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

Créer un projet

Une application console .NET peut être créée à l'aide de Visual Studio. Ouvrez Visual Studio et sélectionnez Créer un projet. Ici, vous pouvez voir divers modèles pour créer un projet. La façon 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

Entrez le nom du projet

Dans la fenêtre ci-dessous, vous pouvez entrer le nom du projet, l'emplacement du projet pour stocker dans le système de fichiers et enfin le chemin vers le dossier de la solution. Vous pouvez garder les dossiers de la solution et du projet identiques ou les avoir dans des dossiers différents.

Comment ouvrir un fichier Zip en C#: Figure 2 - Configurer le projet

Sélectionnez la version du .NET Framework

L'étape suivante consiste à sélectionner la version du .NET Framework pour le projet. Si vous souhaitez développer dans une version spécifique, spécifiez alors la version souhaitée. Sinon, sélectionnez toujours la dernière version stable pour créer un projet. La dernière version peut être téléchargée depuis le site Microsoft. Puis cliquez sur Créer pour générer l'application console.

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

Cela créera le projet par défaut à partir du modèle et stockera 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 program.cs dans les dernières versions.

// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
' Import necessary namespaces
Imports System

' Define the namespace
Namespace MyApp ' Note: actual namespace depends on the project name.
	' Define the Program class
	Friend Class Program
		' Main method: Entry point of the application
		Shared Sub Main(ByVal args() As String)
			' Print a welcome message
			Console.WriteLine("Hello, World!")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

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. Le code suivant montre comment utiliser les méthodes statiques ZipFile.OpenRead et ZipFile.Open pour ouvrir des fichiers ZIP ou extraire des fichiers ZIP.

// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
' Import necessary namespaces
Imports System
Imports System.IO
Imports System.IO.Compression

Public Class ZipExample
	Public Shared Sub Main()
		Console.WriteLine("-----------Zip - Unzip-----------")

		' Method to add a file entry to the ZIP archive
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'		static void AddEntry(string filePath, ZipArchive zipArchive)
'		{
'			' Get file name from the file path
'			var file = Path.GetFileName(filePath);
'
'			' Create a new entry in the ZIP archive for the file
'			zipArchive.CreateEntryFromFile(filePath, file);
'		}

		' Name of the ZIP file to be created
		Dim zip = "myFile.zip"

		' Open or create the ZIP file for updating
		Using archive As ZipArchive = ZipFile.Open(zip, ZipArchiveMode.Update)
			' Add files to the archive
			AddEntry("file1.txt", archive)
			AddEntry("file2.txt", archive)
		End Using

		' Directory where we want to extract the ZIP files
		Dim dirToExtract = "extract"

		' Create the directory if it does not exist
		If Not Directory.Exists(dirToExtract) Then
			Directory.CreateDirectory(dirToExtract)
		End If

		' Extract the contents of the ZIP file to the specified directory
		ZipFile.ExtractToDirectory(zip, dirToExtract)

		' Indicate that extraction is complete
		Console.WriteLine("Files extracted to: " & dirToExtract)
	End Sub
End Class
$vbLabelText   $csharpLabel

Dans le code ci-dessus, un fichier ZIP nommé myFile.zip est utilisé avec l'espace de noms système. La méthode Open est utilisée pour ouvrir le fichier ZIP dans le mode spécifié. Cela peut également être utilisé pour créer de nouveaux fichiers d'archive ZIP. Une fois ouvert, nous pouvons ajouter une nouvelle entrée d'archive en utilisant la méthode AddEntry, puis ExtractToDirectory extrait les fichiers d'archive ZIP vers le répertoire spécifié. Si le répertoire n'existe pas, il est créé à l'aide de Directory.CreateDirectory.

Étape 2. Installer IronZIP en utilisant le gestionnaire de packages NuGet

Ouvrez le gestionnaire de projet depuis Visual Studio et recherchez le package IronZIP. Ensuite, sélectionnez la dernière version et cliquez sur Installer. Vous pouvez modifier la version à installer à partir du menu déroulant. Ensuite, cliquez sur Installer.

Comment ouvrir un fichier Zip en C#: Figure 4 - NuGet Package Manager

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. En plus du 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 priorise l'exactitude, la facilité d'utilisation et la rapidité. Son API conviviale permet aux développeurs d'ajouter facilement des fonctionnalités d'archive aux projets .NET modernes en quelques minutes.

IronZIP offre de nombreux avantages par rapport à la bibliothèque System.IO.Compression. Vous pouvez spécifier le ratio de compression souhaité pendant la compression et également utiliser différents algorithmes de compression tels que ZIP, TAR, GZIP, BZIP2. Il prend également en charge les plateformes mobiles, web et de bureau ainsi que diverses versions de .NET.

// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
' Setup: Specify the path for the new ZIP archive
Dim archivePath = "ironZip.zip"

' Check if the archive already exists, and delete it if so
If File.Exists(archivePath) Then
	File.Delete(archivePath)
End If

' Use IronZIP library to create a new ZIP archive
Using archive = New IronZipArchive(9) ' Compression level: 9 for maximum compression
	' Add files to the ZIP archive
	archive.Add("file1.txt")
	archive.Add("file2.txt")

	' Save the archive to the specified path
	archive.SaveAs(archivePath)
End Using
$vbLabelText   $csharpLabel

Le code source initial est configuré en spécifiant le nom du fichier d'archive ZIP et en vérifiant si le répertoire spécifié existe. Ensuite, nous archivons les fichiers pour créer un fichier ZIP en utilisant la méthode Add. Le deuxième paramètre dans le paramètre de compression est 1 pour inférieur et 9 pour supérieur. Les fichiers texte peuvent être compressés au maximum en utilisant 9 sans perte, et les fichiers image peuvent utiliser une compression inférieure pour éviter la perte de données.

Ouvrir le fichier d'archive ZIP en utilisant IronZIP

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

// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
' Directory to extract all files from the ZIP archive
Dim extractionPath = "IronZipFiles"

' Check if the directory exists; if not, create it
If Not Directory.Exists(extractionPath) Then
	Directory.CreateDirectory(extractionPath)
End If

' Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath)
$vbLabelText   $csharpLabel

Le code ci-dessus extrait les fichiers ZIP vers un répertoire. Le code vérifie si le répertoire existe et, si ce n'est pas le cas, 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 requise. Cette clé doit être placée dans appsettings.json.

{
    "IronZip.LicenseKey": "your license key"
}

Une licence d'essai est disponible pour les développeurs après enregistrement ici, et oui, aucune carte de crédit n'est requise pour une licence d'essai. On peut fournir l'identifiant e-mail et s'inscrire pour un essai gratuit.

Ajouter des fichiers à un fichier d'archive ZIP existant

Utilisez la méthode statique FromFile d'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.

// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
' Path to a new file to be added to the existing ZIP archive
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"

' Open the existing ZIP archive and add a new file
Using file = IronArchive.FromFile("ironZip.zip", archivePlusPath)
	' Add additional files to the existing archive
	file.Add(file3)
End Using
$vbLabelText   $csharpLabel

Le code utilise la méthode statique IronArchive.FromFile pour ouvrir le fichier ZIP existant puis ajouter le nouveau fichier en tant qu'entrée d'archive. Une fois l'objet fichier disposé, l'archive mise à jour est enregistrée avec succès.

Mises à jour

La bibliothèque IronZIP est constamment mise à jour en fonction des retours 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 à développer dans le développement d'applications modernes où les coûts de stockage et de transfert de données sont facturés par les fournisseurs de cloud. Connaître cette compétence peut aider les programmeurs à réduire le coût de l'application et à améliorer les performances de l'application.

En suivant les étapes d'installation et en explorant les exemples de code fournis, les développeurs peuvent rapidement tirer parti de la puissance d'IronZIP pour gérer les tâches ZIP avec facilité. Alors que de plus en plus d'applications sont modernisées et déplacées vers le cloud, disposer d'une bibliothèque ZIP fiable comme IronZIP équipe les développeurs C# des outils nécessaires pour répondre aux exigences du développement d'applications modernes. Ainsi, adoptez la puissance d'IronZIP et débloquez de nouvelles possibilités pour travailler avec des fichiers ZIP dans vos applications C#.

IronZIP offre un support étendu pour ses développeurs. Pour en savoir plus sur le fonctionnement d'IronZIP pour C#, visitez ici. IronZIP propose une licence d'essai gratuite qui est une excellente opportunité pour découvrir IronZIP et ses fonctionnalités.

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

Questions Fréquemment Posées

Comment puis-je ouvrir un fichier ZIP en C# ?

Vous pouvez ouvrir un fichier ZIP en C# en utilisant la bibliothèque System.IO.Compression. Alternativement, IronZIP offre des fonctionnalités avancées pour gérer les fichiers ZIP, offrant une manière plus facile et plus efficace de gérer vos archives.

Comment puis-je extraire des fichiers d'une archive ZIP en C# ?

Avec IronZIP, vous pouvez extraire des fichiers d'une archive ZIP en utilisant la méthode IronArchive.ExtractArchiveToDirectory. Cette méthode vous oblige à spécifier le fichier ZIP et le répertoire cible pour l'extraction.

Quels sont les avantages d'utiliser des fichiers ZIP en développement d'application ?

Les fichiers ZIP réduisent la taille des fichiers, ce qui entraîne des temps de transfert plus rapides et la capacité de regrouper plusieurs fichiers dans une seule archive. IronZIP améliore ces avantages avec des fonctionnalités supplémentaires telles que la spécification des ratios de compression et la prise en charge de plusieurs formats.

Comment puis-je ajouter des fichiers à une archive ZIP existante en C# ?

Pour ajouter des fichiers à une archive ZIP existante en utilisant IronZIP, utilisez la méthode IronArchive.FromFile pour ouvrir l'archive, puis utilisez la méthode Add pour inclure de nouveaux fichiers. Enregistrez l'archive mise à jour pour terminer le processus.

Puis-je créer un nouveau fichier ZIP et y ajouter des fichiers en utilisant IronZIP ?

Oui, avec IronZIP, vous pouvez créer un nouveau fichier ZIP en spécifiant le chemin de l'archive et en ajoutant des fichiers en utilisant la méthode Add. L'archive est ensuite enregistrée en utilisant la méthode SaveAs.

Comment puis-je installer IronZIP en utilisant le gestionnaire de packages NuGet ?

Pour installer IronZIP via le gestionnaire de packages NuGet, ouvrez le gestionnaire de projet dans Visual Studio, recherchez IronZIP, sélectionnez la dernière version et cliquez sur Installer. Cela ajoutera IronZIP à votre projet, permettant la gestion des fichiers ZIP.

IronZIP prend-il en charge plusieurs formats de compression ?

Oui, IronZIP prend en charge plusieurs formats de compression, y compris ZIP, TAR, GZIP, et BZIP2, offrant de la flexibilité pour divers besoins d'applications.

Y a-t-il un essai gratuit disponible pour IronZIP ?

Oui, IronZIP propose un essai gratuit pour les développeurs. Vous pouvez vous inscrire sur le site web d'Iron Software pour accéder à l'essai sans nécessiter de carte de crédit.

Qu'est-ce qui fait d'IronZIP un choix approprié pour le développement d'applications modernes ?

IronZIP est connu pour sa facilité d'utilisation, sa rapidité et sa compatibilité multiplateforme. Ces caractéristiques, avec ses fonctionnalités avancées, en font un choix idéal pour le développement d'applications modernes.

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