C#列出ZIP文件内容 - 使用ZipArchive类

时间:2013-04-24 10:20:50

标签: c# zip .net

我想使用'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 个答案:

答案 0 :(得分:3)

添加对System.IO.CompressionSystem.IO.Compression.FileSystem的引用。

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

希望这有帮助!

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我迟到了,但它可能对某人有帮助......

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

  • System.IO.Compression
  • System.IO.Compression.FileSystem

添加后可能无法正常工作,因此请进入其属性并将每个“copy local”设置标记为“True”。

我的诀窍。 :)

答案 3 :(得分:0)

我遇到了同样的问题,并在Assemblies -> Framework:中查找了这些名称空间 只需添加名称空间:System.IO.Compression & System.IO.Compression.FileSystem

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

enter image description here