Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

Tutoriel sur l'archivage zip pour les développeurs C# en utilisant IronXL

Introduction à ZipArchive

Lorsqu'on pense à envoyer un fichier compressé, on pense souvent en premier lieu à l'archive ZIP. Ce format est très répandu pour compresser un fichier unique ou une collection entière dans une seule archive. Cependant, lorsqu'il s'agit de nombreux fichiers à compresser, la tâche peut vite devenir fastidieuse, car il faut les archiver et les formater un par un. Mais ça ne doit pas forcément se passer comme ça. Les tâches volumineuses nécessitent une automatisation par programmation. Nous pouvons utiliser IronZip, une bibliothèque simple mais intuitive, pour réaliser tout cela et bien plus encore.

Dans cet article, nous aborderons brièvement les principales caractéristiques et fonctionnalités d'IronZip et comment il peut vous aider à mieux automatiser votre flux de travail, à accroître votre efficacité et à éliminer les tâches manuelles sujettes aux erreurs.

Création d'un nouveau fichier zip à partir d'un dossier ou de fichiers

Voici un exemple qui prend en entrée plusieurs fichiers, les compresse dans une seule archive et les exporte après l'opération. Tous les exemples de cet article sont inclus dans la méthode static void Main() afin d'éviter les blocs de code répétitifs.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

            // Export the ZIP archive to a file
            archive.SaveAs("output.zip");
        }
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

            // Export the ZIP archive to a file
            archive.SaveAs("output.zip");
        }
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create an empty ZIP archive
		Using archive = New IronZipArchive()
			' Add files to the ZIP archive
			archive.Add("./assets/image1.jpg")
			archive.Add("./assets/image2.jpg")
			archive.Add("./assets/image3.jpg")

			' Export the ZIP archive to a file
			archive.SaveAs("output.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. Nous importons d'abord IronZip.
  2. Ensuite, à l'aide d'IronZip, nous créons une archive.
  3. Nous utilisons la méthode archive.Add() pour ajouter plusieurs fichiers à l'archive. N'oubliez pas que les chemins d'accès doivent être absolus, sinon l'opération échouera et les fichiers correspondants ne seront pas trouvés.
  4. Enfin, nous appelons archive.SaveAs() pour exporter l'archive zip sous le nom output.zip .

Mise à jour d'un fichier zip existant avec de nouveaux fichiers ou des modifications

Passons en revue un autre exemple ; Cette fois-ci, nous allons modifier l'archive zip existante avec de nouveaux fichiers afin de démontrer les fonctionnalités d'IronZip.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Open an existing ZIP archive
		Using archive = IronZipArchive.FromFile("existing.zip")
			' Add additional files to the existing ZIP archive
			archive.Add("./assets/image3.png")
			archive.Add("./assets/image4.png")

			' Export the updated ZIP archive to a new file
			archive.SaveAs("result.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. Nous importons d'abord IronZip.
  2. En utilisant IronZip, nous créons une archive, mais cette fois-ci, nous importons le fichier zip existant avec IronZipArchive.FromFile() .
  3. Nous appelons archive.Add() pour ajouter les fichiers souhaités à l'archive. N'oubliez pas que les chemins d'accès doivent être absolus, sinon l'opération échouera et les fichiers existants ne seront pas trouvés.
  4. Enfin, nous appelons archive.SaveAs() pour exporter l'archive zip mise à jour sous le nom result.zip .

Comme vous pouvez le constater dans le code ci-dessus, le fonctionnement et le format sont similaires à ceux utilisés pour créer et ajouter des fichiers à une archive Zip. La principale différence réside dans l'importation de l'archive Zip, illustrant ainsi la simplicité et l'intuitivité d'IronZip.

Extraction de fichiers d'une archive Zip

Nous pouvons également utiliser IronZip pour extraire des fichiers d'une archive Zip ou d'un paquet Zip. Reprenons cela avec un autre exemple.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract the ZIP archive content to a specified directory
		IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted")
	End Sub
End Class
$vbLabelText   $csharpLabel

Nous importons IronZip et appelons IronZipArchive.ExtractArchiveToDirectory() . Cette méthode extrait le contenu de l'archive zip existante vers le répertoire cible spécifié.

De plus, dans les cas où vous devez traiter des archives zip protégées par mot de passe, nous pouvons utiliser une autre méthode pour extraire les archives.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract the protected ZIP archive content to a specified directory
		IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd")
	End Sub
End Class
$vbLabelText   $csharpLabel

Enfin, nous fournissons un autre paramètre : le mot de passe de l'archive ZIP protégée. Le reste de l'opération est identique à celui décrit précédemment.

Sujets avancés et meilleures pratiques

Les exemples de code pour l'ajout, l'extraction et la création d'archives mentionnés ci-dessus sont les plus courants lorsqu'il s'agit d'archives zip. Cependant, pour une utilisation plus avancée, comme l'extraction d'autres formats ou simplement la visualisation du contenu de l'archive, IronZIP vous offre bien plus encore.

Fonctionnalités avancées d'IronZIP

  • Compatibilité croisée : IronZIP est compatible avec une large gamme de versions .NET, y compris .NET Core (3.1+), Standard (2.0+) et .NET Framework (4.6.2+). La bibliothèque fonctionne également sur le Web (Blazor), sur mobile (MAUI), sur ordinateur (WPF) et sur console. Cela permet aux développeurs de s'affranchir des limitations liées à la plateforme et à la version.

  • Génération d'archives : Outre le format ZIP, IronZIP prend en charge la création d'archives TAR, GZIP et BZIP2.

  • Extraction d'archives : Extrayez facilement des archives et décompressez des fichiers avec IronZIP en utilisant un seul bloc de code, comme illustré ci-dessus.

  • Ajout de fichiers et de systèmes de fichiers : IronZIP facilite la manipulation des archives zip en y ajoutant des images, des fichiers texte et des documents (tels que des PDF, DOCX et XLSX), ainsi que des fichiers audio comme les MP3 et WAV. Il peut même compresser des systèmes de fichiers entiers ou des fichiers texte individuels dans une archive ZipArchive .

  • Exporter et créer : Vous pouvez protéger les archives par mot de passe avec les normes AES128 et AES256. De plus, vous pouvez générer et exporter des formats tels que TAR, GZIP et BZIP2.

  • Niveaux de compression personnalisés : IronZIP permet aux développeurs d'ajuster les paramètres de compression afin d'adapter l'algorithme à leurs besoins.

  • Édition d'archives : Ajoutez, extrayez ou supprimez facilement des entrées de fichiers dans une archive grâce à IronZIP, une solution complète pour les opérations d'édition.

  • Propriétés des entrées de fichiers : IronZIP offre la possibilité de définir des commentaires d'archive facultatifs et de récupérer les noms de fichiers à l'intérieur de l'archive sans les extraire, ce qui permet de laisser des commentaires spécifiques pour chaque fichier.

  • Choix de licences : IronZIP propose des choix de licences adaptables, y compris des versions d'essai gratuites, permettant aux développeurs de choisir ce qui correspond le mieux à leurs besoins.

Conclusion

La gestion des fichiers compressés et des archives est une tâche quotidienne à laquelle les développeurs sont souvent confrontés, mais la gestion d'un grand volume de ces fichiers peut être stressante et sujette aux erreurs humaines. Bien qu'il existe des options comme System.IO.Compression, utiliser IronZIP vous permet d'atteindre plus et de résoudre rapidement les problèmes lors de la gestion des archives compressées. Dans cet article, nous avons abordé les fonctionnalités avancées d'IronZIP et les opérations courantes telles que la création d'archives zip, la suppression d'entrées ou l'ajout de fichiers. Comprendre comment effectuer ces tâches par programmation avec IronZIP permet d'accroître l'efficacité, l'évolutivité et l'automatisation du traitement des archives.

Veuillez noterSystem.IO.Compression est une marque déposée de son propriétaire respectif. Ce site n'est ni affilié à, ni approuvé par, ni sponsorisé par System.IO.Compression. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont faites à titre d'information uniquement et reflètent les informations publiquement disponibles au moment de la rédaction.

Questions Fréquemment Posées

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

Pour créer un fichier ZIP à partir d'un dossier en C#, vous pouvez utiliser la bibliothèque IronZip. Tout d'abord, importez la bibliothèque IronZip, créez une instance de IronZipArchive, ajoutez le dossier en utilisant archive.AddFolder(), et enregistrez-le avec archive.SaveAs().

Quel est le processus pour extraire des données d'une archive ZIP en C# ?

Vous pouvez extraire des données d'une archive ZIP en C# en utilisant IronZip en appelant la méthode IronZipArchive.ExtractArchiveToDirectory(). Cette méthode vous permet de spécifier un répertoire où le contenu sera extrait.

Comment puis-je mettre à jour le contenu d'une archive ZIP par programmation en C# ?

Pour mettre à jour le contenu d'une archive ZIP par programmation en C#, utilisez IronZip en chargeant l'archive existante avec IronZipArchive.FromFile(), puis utilisez archive.Add() pour ajouter des fichiers ou archive.Remove() pour supprimer des fichiers avant de sauvegarder les modifications avec archive.SaveAs().

IronZip peut-il gérer des fichiers ZIP protégés par mot de passe ?

Oui, IronZip peut gérer des fichiers ZIP protégés par mot de passe. Vous pouvez spécifier un mot de passe lors de l'extraction de fichiers en utilisant la méthode IronZipArchive.ExtractArchiveToDirectory() en fournissant le mot de passe comme paramètre supplémentaire.

Quels sont les avantages d'utiliser IronZip par rapport à System.IO.Compression pour la gestion des fichiers ZIP ?

IronZip offre des fonctionnalités avancées par rapport à System.IO.Compression telles que la prise en charge de plusieurs formats d'archives, la protection par mot de passe, des niveaux de compression personnalisés et la possibilité de modifier les archives en ajoutant ou supprimant des fichiers sans les extraire.

Comment IronZip assure-t-il la compatibilité croisée avec les différentes versions de .NET ?

IronZip assure la compatibilité croisée en supportant plusieurs versions de .NET, permettant aux développeurs d'intégrer la fonctionnalité de gestion des fichiers ZIP dans des applications fonctionnant sur différentes plateformes et frameworks.

Quelles fonctionnalités avancées offre IronZip pour la gestion des archives ZIP ?

IronZip offre des fonctionnalités avancées telles que la génération et l'extraction de plusieurs formats d'archives (ZIP, TAR, GZIP, BZIP2), la protection par mot de passe, des niveaux de compression personnalisés et des capacités d'édition complètes sans besoin d'extraire les fichiers.

Est-il possible de gérer les propriétés des fichiers au sein d'une archive ZIP en utilisant IronZip ?

Oui, IronZip vous permet de gérer les propriétés des fichiers telles que les commentaires au sein d'une archive ZIP sans besoin d'extraire d'abord les fichiers, améliorant la flexibilité et l'efficacité dans la gestion des archives.

Comment puis-je automatiser la création et l'extraction de fichiers ZIP en C# ?

Vous pouvez automatiser la création et l'extraction de fichiers ZIP en C# en utilisant IronZip dans une méthode static void Main(). Cela vous permet d'automatiser les processus tels que l'ajout de fichiers à une archive, l'extraction de données et la mise à jour de fichiers existants par programmation.

IronZip prend-il en charge la gestion de systèmes de fichiers entiers ?

Oui, IronZip prend en charge la compression et l'extraction de systèmes de fichiers entiers, ce qui le rend adapté pour traiter de grands volumes de données de manière efficace.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite