net examples example descomprimir create c# zip
de MSDN

c# - examples - No encontré la clase "ZipFile" en el espacio de nombres "System.IO.Compression"



save zip c# (9)

No puedo usar la clase "Zipfile" en el espacio de nombres "System.IO.Compression" mi código es:

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); } } }

el error es:

El nombre ''zipfile'' no existe en el contexto actual

¿Cómo puedo resolverlo?


Agregue System.IO.Compression.ZipFile como referencia Nuget está funcionando


Debe agregar una referencia dll al ensamblado, "System.IO.Compression.FileSystem.dll", y asegúrese de estar utilizando .NET 4.5 (ya que no existe en marcos anteriores).

Para obtener información, puede encontrar el ensamblaje y la versión .NET de MSDN



En el explorador de soluciones, haga clic con el botón derecho en Referencias, luego haga clic para expandir ensamblajes, busque System.IO.Compression.FileSystem y asegúrese de que esté marcado. Entonces puede usarlo en su clase - using System.IO.Compression;

Agregar captura de pantalla de ensamblaje de referencia


Para aquellos que son programadores verdes en .NET, para agregar la referencia de DLL como notó , siga estos pasos:

Para agregar una referencia en Visual C #

  1. En el Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y haga clic en Agregar referencia.
  2. En el cuadro de diálogo Agregar referencia, seleccione la pestaña que indica el tipo de componente al que desea hacer referencia.
  3. Seleccione los componentes a los que desea hacer referencia y luego haga clic en Aceptar.

Desde el artículo de MSDN, Cómo agregar o quitar referencias mediante el cuadro de diálogo Agregar referencia .


Sé que este es un hilo viejo, pero no puedo evitar publicar información útil sobre esto. Veo que la pregunta de Zip surge mucho y esto responde casi la mayoría de las preguntas comunes.

Para evitar problemas de Framework al usar 4.5 + ... Su es una clase de ZipStorer creada por jaime-olivares: https://github.com/jaime-olivares/zipstorer , también ha agregado un ejemplo de cómo usar esta clase como bien y también ha agregado un ejemplo de cómo buscar un nombre de archivo específico también.

Y para referencia sobre cómo usar esto e iterar a través de una determinada extensión de archivo como ejemplo, puede hacer esto:

#region /// <summary> /// Custom Method - Check if ''string'' has ''.png'' or ''.PNG'' extension. /// </summary> static bool HasPNGExtension(string filename) { return Path.GetExtension(filename).Equals(".png", StringComparison.InvariantCultureIgnoreCase) || Path.GetExtension(filename).Equals(".PNG", StringComparison.InvariantCultureIgnoreCase); } #endregion private void button1_Click(object sender, EventArgs e) { //NOTE: I recommend you add path checking first here, added the below as example ONLY. string ZIPfileLocationHere = @"C:/Users/Name/Desktop/test.zip"; string EXTRACTIONLocationHere = @"C:/Users/Name/Desktop"; //Opens existing zip file. ZipStorer zip = ZipStorer.Open(ZIPfileLocationHere, FileAccess.Read); //Read all directory contents. List<ZipStorer.ZipFileEntry> dir = zip.ReadCentralDir(); foreach (ZipStorer.ZipFileEntry entry in dir) { try { //If the files in the zip are "*.png or *.PNG" extract them. string path = Path.Combine(EXTRACTIONLocationHere, (entry.FilenameInZip)); if (HasPNGExtension(path)) { //Extract the file. zip.ExtractFile(entry, path); } } catch (InvalidDataException) { MessageBox.Show("Error: The ZIP file is invalid or corrupted"); continue; } catch { MessageBox.Show("Error: An unknown error ocurred while processing the ZIP file."); continue; } } zip.Close(); }


Simplemente vaya a Referencias y agregue "System.IO.Compression.FileSystem".


puede usar un paquete externo si no puede actualizar a 4.5. Uno de ellos es Ionic.Zip.dll de DotNetZipLib.

using Ionic.Zip;

puedes descargarlo aquí, es gratis. http://dotnetzip.codeplex.com/


System.IO.Compression ahora está disponible como un paquete nuget mantenido por Microsoft.

Para usar ZipFile necesita descargar el paquete System.IO.Compression.ZipFile nuget .