124 votes

Je n'ai pas trouvé la classe "ZipFile" dans l'espace de noms "System.IO.Compression".

Je ne peux pas utiliser la classe "Zipfile" dans l'espace de nom "System.IO.Compression" mon code est :

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string startPath = @"c:\example\start";
            string zipPath = @"c:\example\result.zip";
            string extractPath = @"c:\example\extract";

            ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest,true);

            ZipFile.ExtractToDirectory(zipPath, extractPath);
        }
    }
}

l'erreur est :

Le nom 'zipfile' n'existe pas dans le contexte actuel.

Comment puis-je le résoudre ?

236voto

Marc Gravell Points 482669

Vous avez besoin d'une référence supplémentaire pour cela ; la façon la plus pratique de le faire est via le paquet NuGet System.IO.Compression.ZipFile

<!-- Version here correct at time of writing, but please check for latest -->
<PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" />

Si vous travaillez sur .NET Framework sans NuGet, vous devez ajouter une référence à l'assembly "System.IO.Compression.FileSystem.dll" - et vous assurer que vous utilisez au moins .NET 4.5 (car il n'existe pas dans les frameworks précédents).

Pour plus d'informations, vous pouvez trouver l'assemblage et la ou les versions .NET. de MSDN

32voto

Will Ediger Points 379

Pour ceux qui sont des programmeurs novices en .NET, pour ajouter la référence DLL comme MarcGravell noté, vous suivez les étapes suivantes :

Pour ajouter une référence en Visual C#

  1. Dans l'explorateur de solutions, cliquez avec le bouton droit de la souris sur le nœud du projet et cliquez sur Ajouter une référence.
  2. Dans la boîte de dialogue Ajouter une référence, sélectionnez l'onglet indiquant le type de composant que vous souhaitez référencer.
  3. Sélectionnez les composants que vous souhaitez référencer, puis cliquez sur OK.

Extrait de l'article de MSDN, Comment faire : Ajouter ou supprimer des références en utilisant la boîte de dialogue Ajouter une référence .

18voto

John Faulkner Points 637

Vous pouvez utiliser un paquet externe si vous ne pouvez pas passer à la version 4.5. L'un d'eux est Ionic.Zip.dll de DotNetZipLib.

using Ionic.Zip;

vous pouvez le télécharger ici, c'est gratuit. http://dotnetzip.codeplex.com/

14voto

user6604144 Points 129

Il suffit d'aller dans Références et d'ajouter "System.IO.Compression.FileSystem".

4voto

Erik Rausch Points 21

Dans l'explorateur de solutions, cliquez avec le bouton droit de la souris sur References, puis cliquez pour développer les assemblages, trouvez System.IO.Compression.FileSystem et assurez-vous qu'il est coché. Ensuite, vous pouvez l'utiliser dans votre classe - using System.IO.Compression;

Capture d'écran de l'ajout d'un assemblage de référence

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X