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

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的命名空间找不到'。

我可以确认应用程序的'Target framework'是.NET Framework 4.5。

有人能指点我正确的方向吗?


你是否将 System.IO.Compression.dll 添加为引用? - Soner Gönül
添加这个会给我报错:“命名空间 'System.IO.Compression' 中不存在类型或命名空间名为 'dll' 的名称”。我认为这可能是 .NET 版本的问题。 - JHarley1
4个回答

3

我已经添加了这些引用。但是我遇到了错误,即在System.IO.Compression命名空间中不存在FileSystem类型或命名空间名称。有什么想法吗? - JHarley1
当我在应用程序选项卡上选择项目> {项目名称}属性时,“目标框架”为.NET Framework 4.5。我正在使用Visual Studio Pro 2012。 - JHarley1
尝试为应用程序设置完全信任。 - Obama
无法使用“这是完全信任的应用程序”。-我仍然会得到错误1:“dll”类型或命名空间在命名空间“System.IO.Compression”中不存在(是否缺少程序集引用?) - JHarley1
你可以尝试使用DotNetZip代替。它具有与ZipFile类相同的功能。 - Obama
@JHarley1,你尝试从项目引用中手动添加它们了吗?这对我有用,并且我已经发布了屏幕截图。希望能帮到你! - Yusubov

0

我来晚了,但这可能对某些人有帮助...

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

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

在添加这些内容后,它可能不起作用,因此进入其属性并将每个设置的“复制本地”设置为“True”。

对我有用。 :)


0

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


0

我曾经遇到过同样的问题,并在程序集 -> 框架中寻找这些命名空间:
只需添加以下命名空间:System.IO.Compression & System.IO.Compression.FileSystem

以下是屏幕截图,以便更好地理解和操作:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接