我没有在"System.IO.Compression"命名空间中找到"ZipFile"类

Moh*_*mal 110 c# zip

我不能在名称空间"System.IO.Compression"中使用"Zipfile"类我的代码是:

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

"zipfile"这个名称在当前上下文中不存在

我怎么解决呢?

Mar*_*ell 201

您需要向程序集"System.IO.Compression.FileSystem.dll"添加一个dll引用 - 并确保您使用的是.NET 4.5(因为它在早期的框架中不存在).

有关信息,您可以从MSDN中找到程序集和.NET版本

  • @MohamedKamal确实,除非你使用.NET 4.5,否则你不会这样做,因为它直到那时才存在; 请参阅"版本信息"信息 - "支持:4.5" (17认同)
  • 我没有`FileSystem`参考.只有`System.IO.Compression`.谢谢.奇怪的是它需要一个不在类的命名空间中的文件.这与惯例有点奇怪. (3认同)
  • @ChrisBenard我发现了同样的问题。仅包括对System.IO.Compression的引用,我也需要FileSystem。确实很有趣。 (3认同)
  • 我正在使用.NET 4.0 ...,但找不到此dll文件 (2认同)
  • 您好,今天发现这非常有用,只是对于那些可能找不到如何添加它的人来说,在项目属性中的参考部分中,添加一个新的,在程序集部分中,选择框架并搜索 System.IO .压缩.文件系统 (2认同)

Wil*_*ger 32

对于那些在.NET中是绿色程序员的人来说,要像MarcGravell所说的那样添加DLL引用,请按照以下步骤操作:

在Visual C#中添加引用

  1. 在Solution Explorer中,右键单击项目节点,然后单击Add Reference.
  2. 在"添加引用"对话框中,选择指示要引用的组件类型的选项卡.
  3. 选择要引用的组件,然后单击"确定".

从MSDN文章,如何:使用添加引用对话框添加或删除引用.


Joh*_*ner 18

如果您无法升级到4.5,则可以使用外部包.其中一个是来自DotNetZipLib的Ionic.Zip.dll.

using Ionic.Zip;
Run Code Online (Sandbox Code Playgroud)

你可以在这里免费下载.http://dotnetzip.codeplex.com/

  • 他的问题是"我该如何修复它?" 这是修复它的一种方法 - 因为他的.net版本不支持它. (19认同)
  • 或通过NuGet安装它 (3认同)
  • 可悲的是,有时升级不是一种选择.有一个upvote. (3认同)
  • 这与问题有什么关系? (2认同)

小智 9

只需转到References并添加"System.IO.Compression.FileSystem".