3

我想使用“ZipArchive”类获取 ZIP 文件中的内容列表。

我正在使用 MSDN 中的示例:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Compression;
using System.IO.Compression.dll;

namespace Zip_Extractor
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                {
                    ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                            writer.WriteLine("Information about this package.");
                            writer.WriteLine("========================");
                    }
                }
            }
        }
    }
}

但是,我得到了错误

'找不到'ZipArchive 的命名空间'。

我可以确认应用程序的“目标框架”是 .NET Framework 4.5。

谁能指出我正确的方向?

4

4 回答 4

3

添加对System.IO.Compression和的引用System.IO.Compression.FileSystem

查看 David Anderson 的博客:http ://www.danderson.me/dotnet/zipfile-class-system-io-compression-filesystem/

希望这可以帮助!

于 2013-04-24T10:27:40.467 回答
0

右键单击引用,添加对框架程序集 System.IO.Compression 和 System.IO.Compression.FileSystem 的引用。包括使用 System.IO.Compression;并确保您使用的是 .NET Framework 4.5。

于 2014-09-03T19:29:21.397 回答
0

我迟到了,但它可能会帮助别人......

添加对其他答案中提到的文件的引用:

  • System.IO.压缩
  • System.IO.Compression.FileSystem

添加这些后它可能不起作用,因此进入它们的属性并将每个“复制本地”设置标记为“真”。

为我做了诀窍。:)

于 2015-07-23T18:36:21.450 回答
0

Assemblies -> Framework:
我遇到了同样的问题,并在Just add the namespaces:中查找了这些命名空间System.IO.Compression & System.IO.Compression.FileSystem

这是使理解/事情更容易的屏幕截图:

在此处输入图像描述

于 2016-05-09T15:12:09.650 回答