ajouter des fichiers ou des dossiers aux archives zip à l'aide de csharp

Les fichiers ZIP sont les types de fichiers d’archive les plus courants utilisés pour conserver les fichiers et dossiers compressés dans un seul conteneur. En tant que développeur C#, vous pouvez facilement créer par programmation des archives ZIP cryptées ou protégées par mot de passe à l’aide de C# dans vos applications .NET. Dans cet article, vous apprendrez comment créer des fichiers ZIP chiffrés à l’aide de C#.

Les sujets suivants sont abordés/couverts dans cet article:

API C# pour créer des fichiers ZIP chiffrés

Pour créer des archives chiffrées ZIP, j’utiliserai Aspose.ZIP pour .NET API. Il vous permet de compresser des fichiers et des dossiers et de les ajouter aux archives ZIP. Il vous permet également de décompresser des archives de types pris en charge tels que ZIP, TAR, GZIP, BZ2, 7Zip, RAR, etc. L’API offre une protection via des mots de passe définis par l’utilisateur et des techniques de cryptage traditionnelles utilisant le cryptage AES tel que AES128, AES192 et AES256.

Vous pouvez soit télécharger la DLL de l’API, soit l’installer à l’aide de NuGet.

Install-Package Aspose.ZIP

Créer des fichiers ZIP protégés par mot de passe

Vous pouvez facilement créer par programmation des archives ZIP protégées par mot de passe en suivant les étapes ci-dessous:

  1. Créez une instance de la classe Archive avec l’objet ArchiveEntrySettings.
  2. Définissez le mot de passe à l’aide de l’objet TraditionalEncryptionSettings.
  3. Appelez la méthode CreatEntry() avec le chemin du fichier d’entrée à ajouter à l’archive.
  4. Répétez l’étape ci-dessus pour ajouter plusieurs fichiers.
  5. Appelez la méthode Save() avec le chemin du fichier de sortie pour enregistrer le fichier de sortie.

L’exemple de code suivant montre comment créer un fichier ZIP protégé par mot de passe à l’aide de C#.

// créer une archive
Archive archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("12345")));

// Ajouter des fichiers à l'archive
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt");

// sauvegarder l'archive
archive.Save("C:\\Files\\password_protcted.zip");
Créer des archives ZIP protégées par mot de passe

Créer des archives ZIP protégées par mot de passe

La classe Archive représente un fichier d’archive ZIP. Il fournit plusieurs méthodes pour créer, composer, extraire ou mettre à jour des archives ZIP. La méthode CreatEntry() de cette classe crée une entrée unique d’un fichier dans l’archive. Il prend le nom du fichier et le chemin d’accès complet au fichier comme paramètres d’entrée. Cette classe fournit également des méthodes CreatEntry() surchargées pour ajouter des fichiers à partir du flux ou de FileInfo. La méthode Save() de cette classe enregistre l’archive ZIP dans le chemin de fichier spécifié.

La classe ArchiveEntrySettings fournit des paramètres pour compresser ou décompresser les entrées. La classe TraditionalEncryptionSetings fournit des paramètres pour l’algorithme traditionnel ZipCrypto. Il s’agit d’un algorithme de protection par mot de passe ZIP. La propriété Password de cette classe permet d’obtenir ou de définir un mot de passe pour le chiffrement ou le déchiffrement des fichiers et dossiers dans une archive ZIP.

Créer des fichiers ZIP cryptés avec le cryptage AES

Vous pouvez chiffrer vos archives ZIP avec le chiffrement AES par programmation en suivant les étapes ci-dessous:

  1. Créez une instance de la classe **Archive_** avec l’objet ArchiveEntrySettings.
  2. Définissez le mot de passe à l’aide de la classe AesEcryptionSettings. Passez la chaîne de mot de passe et EncryptionMethod comme arguments au constructeur.
  3. Appelez la méthode CreatEntry() avec le chemin du fichier d’entrée à ajouter à l’archive.
  4. Répétez l’étape ci-dessus pour ajouter plusieurs fichiers.
  5. Appelez la méthode Save() avec le chemin du fichier de sortie pour enregistrer le fichier de sortie.

L’exemple de code suivant montre comment créer un fichier ZIP chiffré avec le chiffrement AES à l’aide de C#.

// créer une archive
Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Ajouter des fichiers à l'archive
archive.CreateEntry("abc.txt", "C:\\Files\\sample1.txt");

// sauvegarder l'archive
archive.Save("C:\\Files\\aes.zip");

La classe AesEncryptionSettings fournit des paramètres pour l’algorithme de chiffrement ou de déchiffrement AES. L’Advanced Encryption Standard (AES) est un algorithme de chiffrement par bloc de chiffrement ou de déchiffrement symétrique. Vous pouvez utiliser les types de méthodes de chiffrement suivants:

  • Traditionnel — Chiffrement PKWARE traditionnel
  • AES128 — Advanced Encryption Standard avec une longueur de clé de 128 bits
  • AES192 — Advanced Encryption Standard avec une longueur de clé de 192 bits
  • AES256 — Advanced Encryption Standard avec une longueur de clé de 256 bits

Crypter les dossiers dans les fichiers ZIP

Vous pouvez ajouter des dossiers protégés par mot de passe aux fichiers ZIP par programmation en suivant les étapes ci-dessous:

  1. Créez une instance de la classe **Archive_** avec l’objet ArchiveEntrySettings.
  2. Définissez le mot de passe à l’aide de l’objet TraditionalEncryptionSettings.
  3. Appelez la méthode CreatEntries() avec le chemin du dossier à ajouter à l’archive.
  4. Répétez l’étape ci-dessus pour ajouter plusieurs dossiers.
  5. Appelez la méthode Save() avec le chemin du fichier de sortie pour enregistrer le fichier de sortie.

L’exemple de code suivant montre comment ajouter un dossier crypté au fichier ZIP à l’aide de C#.

// créer une archive
Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("123@45")));

// Ajouter un dossier à l'archive
archive.CreateEntries("C:\\Files\\MyFolder");

// sauvegarder l'archive
archive.Save("C:\\Files\\password_protcted_folder.zip");

Crypter des fichiers spécifiques dans les archives ZIP

Vous pouvez chiffrer des fichiers spécifiques dans les archives ZIP par programmation en suivant les étapes ci-dessous:

  1. Créez une instance de la classe Archive.
  2. Appelez la méthode CreatEntry() avec le chemin du fichier d’entrée à ajouter à l’archive.
  3. Définissez le mot de passe du fichier à l’aide de ArchiveEntrySettings avec TraditionalEncryptionSettings.
  4. Appelez la méthode CreatEntry() avec le chemin du fichier d’entrée pour ajouter un autre fichier à l’archive.
  5. Répétez les étapes ci-dessus pour ajouter d’autres fichiers.
  6. Appelez la méthode Save() avec le chemin du fichier de sortie pour enregistrer le fichier de sortie.

L’exemple de code suivant montre comment chiffrer des fichiers spécifiques dans l’archive ZIP à l’aide de C#.

// créer une archive
Archive archive = new Archive();

// Ajouter des fichiers à l'archive
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("123@abc")));

// sauvegarder l'archive
archive.Save("C:\\Files\\password_protcted.zip");
Crypter des fichiers spécifiques dans les archives ZIP

Crypter des fichiers spécifiques dans des archives ZIP

Créer des fichiers ZIP cryptés avec un cryptage mixte

Vous pouvez créer des archives ZIP contenant des fichiers et des dossiers protégés par des techniques de cryptage mixtes variant pour chaque fichier et dossier par programmation en suivant les étapes ci-dessous:

  1. Créez une instance de la classe Archive.
  2. Appelez la méthode CreatEntry() avec le chemin du fichier d’entrée à ajouter à l’archive.
  3. Définissez le mot de passe du fichier à l’aide de ArchiveEntrySettings avec AesEcryptionSettings.
  4. Appelez la méthode CreatEntry() avec le chemin du fichier d’entrée pour ajouter un autre fichier à l’archive.
  5. Définissez le mot de passe du fichier à l’aide de ArchiveEntrySettings avec TraditionalEncryptionSettings.
  6. Appelez la méthode CreatEntry() avec le chemin du fichier d’entrée pour ajouter un autre fichier à l’archive.
  7. Appelez la méthode CreateEntries() avec le chemin du dossier à ajouter à l’archive.
  8. Enregistrez le fichier de sortie à l’aide de la méthode Save() avec le chemin du fichier de sortie.

L’exemple de code suivant montre comment créer un fichier ZIP avec des techniques de chiffrement mixtes à l’aide de C#.

// créer une archive
Archive archive = new Archive();

// Ajouter un fichier avec cryptage AES à l'archive
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt", false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Ajouter un fichier avec cryptage traditionnel à l'archive
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("321")));

// Ajouter un fichier sans chiffrement à l'archive
archive.CreateEntry("sample3.txt", "C:\\Files\\sample2.txt");

// Ajouter un dossier sans cryptage à l'archive
archive.CreateEntries("C:\\Files\\MyFolder");

// sauvegarder l'archive
archive.Save("C:\\Files\\Mixed.zip");
Créer des archives ZIP cryptées avec un cryptage mixte

Créer un fichier ZIP crypté avec un cryptage mixte

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limites d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris comment créer des fichiers ZIP cryptés à l’aide de C#. Vous avez également appris comment créer un fichier ZIP protégé par mot de passe par programmation. De plus, vous avez appris comment chiffrer des fichiers spécifiques dans les archives ZIP. De plus, vous avez appris comment ajouter des dossiers protégés par mot de passe aux fichiers ZIP. Cet article explique également comment créer un fichier ZIP chiffré avec des techniques de chiffrement mixtes à l’aide de C#. Vous pouvez en savoir plus sur Aspose.ZIP pour l’API .NET en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également