IRONSOFTWAREHOME
USING IRONZIP

如何使用 C# 压缩文件夹中的文件

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

ZIP 文件是使用 ZIP 格式包含一个或多个压缩文件或文件夹的文件。 它是一种常见的方法,可以将多个文件或文件夹压缩并归档为单个文件。 它们可以减少数据的大小,节省磁盘空间,并且使通过互联网传输文件变得更容易。 在本文章中,您将学习如何使用 ZIP 文件以及 C# 使用 IronZIP 库。 您将看到如何以编程方式创建、读取、提取和更新 ZIP 文件,以及如何使用 IronZIP 的各种功能,例如加密、密码保护和压缩级别。 到本文结束时,您将能够使用 IronZIP 轻松处理 C# 应用程序中的 ZIP 文件。

我们将在本文中介绍的内容

  1. 在我们的项目中安装 IronZIP
  2. 创建 ZIP 文件
  3. 创建密码保护的 ZIP 文件
  4. 提取 ZIP 文件
  5. 提取密码保护的 ZIP 文件
  6. 访问现有的 ZIP 归档

什么是 IronZIP?

IronZIP 是一个强大而多功能的 C# ZIP 归档库,允许您以编程方式创建、读取和提取 ZIP 文件。 它支持各种归档格式,如 ZIPTARGZIPBZIP2。 它还支持 密码保护、加密和压缩级别。 IronZIP 兼容 .NET 8、7、6、Core、Standard 和 Framework。

IronZIP 可以帮助您处理使用 ZIP 文件的各种用例和好处,例如:

  1. **创建备份系统:**您可以使用 IronZIP 将重要文件和文件夹压缩并加密为 ZIP 存档,然后将其存储在安全的位置。 通过这种方式,您可以节约磁盘空间,并防止未经授权的访问。
  2. **发送电子邮件附件:**您可以使用 IronZIP 将附件压缩为 ZIP 文件,从而减小其大小。这有助于避免超过文件大小限制,并加快传输速度。
  3. **从网络下载文件:**您可以使用 IronZIP 从网络下载并解压 ZIP 文件,例如软件包、文档、图像及其他类型的文件。 这可以帮助您节省带宽和时间,并轻松访问所需的文件。

IronZIP 入门

在编写代码之前,您需要在 C# 项目中安装 IronZIP NuGet 包。 IronZIP 是一个通过 NuGet 提供的流行压缩库。

安装 IronZIP 库

要安装 IronZIP,您可以使用 Visual Studio 中的 NuGet 包管理器控制台。 只需运行以下命令:

PM > Install-Package IronZip

另外,您可以直接从官方 IronZIP 网站下载该软件包。安装后,您可以通过将以下命名空间添加到 C# 代码的顶部来开始。

using IronZip;

在文件夹中创建 C# ZIP 文件

您可以使用 IronZIP 轻松在文件夹中创建 ZIP 文件。 以下代码将对指定目录中的所有文件进行压缩。

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");
        
        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}

上述 C# 代码使用 IronZIP 库将所有文件压缩为一个 ZIP 文件。 代码执行以下操作:

  • 声明一个名为Directory.GetFiles方法的结果,传递目录路径("D:\Docs")作为参数。 此方法返回一个字符串数组,包含指定目录中所有文件的全名。
  • 创建一个IronZipArchive类的新实例,该类表示内存中的ZIP归档文件。 实例被分配给一个名为using语句中,这确保了当代码块结束时ZIP归档文件被释放。
  • 使用Add方法,传递文件名作为参数。 此方法向 ZIP 归档中添加一个新条目,名称和内容与文件相同。
  • 调用SaveAs方法,将ZIP文件名("myZipFile.zip")作为参数传递。 此方法将 ZIP 归档保存为当前文件系统中的文件。

通过这种方式,您可以使用少量代码轻松创建新的 ZIP 归档。

输出

输出如下:

如何使用C#压缩文件夹内的文件:图1 - 上述代码示例的输出文件

创建密码保护的 ZIP 文件

IronZIP 提供了一种简单的方法来创建密码保护的 ZIP 文件。 以下代码示例将压缩文件,并创建一个具有密码的新的 ZIP 文件。

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");
        
        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}

archive.Encrypt("myPa55word", EncryptionMethods.AES256);使用IronZIP为ZIP归档文件设置密码("myPa55word")。通过对归档文件应用AES-256加密来增强安全性,确保只有使用正确密码的用户才能访问其内容。 此功能对于在 C# 应用程序中存储或传输时保护敏感数据非常有价值。 你需要在第二个参数中传递该加密算法的指定模式。

文件加密如下所示。

输出

如何使用C#压缩文件夹内的文件:图2 - 上述代码示例的输出加密文件

我们已经看到了通过遍历指定路径的目录来创建 ZIP 文件的演示。 现在,让我们朝解压缩文件的例子前进。

从 ZIP 归档中提取文件

IronZIP 提供了一种方法来从 C# 中的 ZIP 归档中提取文件。 以下代码示例将从 ZIP 归档中提取压缩文件。

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}

代码IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");使用IronZIP从"myZipFile.zip"中提取所有文件,并将它们放置在"myExtractedFiles"目录中。 这个简洁的方法简化了 C# 中提取 ZIP 归档的过程,提供了一种便利的文件提取解决方案。

输出

输出如下:

如何使用C#压缩文件夹内的文件:图3 - 上述代码示例的输出文件

如何从密码保护的 ZIP 文件中提取

IronZIP 还提供了一种从密码保护的 ZIP 文件中提取的方法。 以下代码将使用 IronZIP 方法提取来自指定 ZIP 文件的所有现有文件和目录。

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}

ExtractArchiveToDirectory方法从ZIP归档文件中提取所有条目到指定目录。 它为该方法传递三个参数:ZIP 文件的路径 ('myZipFile.zip')、目标目录的路径 ('myExtractedFiles') 和 ZIP 文件的密码 ('myPa55word')。

通过这种方式,您可以轻松地提取密码保护的 ZIP 文件。

如何访问现有归档

IronZIP 提供方法 访问现有归档 并查看文件中存在的所有条目。

using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}

提供的C#代码使用IronZIP通过加载名为"myZipFile.zip"的ZIP文件和密码"myPa55word"创建一个安全的IronZipArchive实例。 如果文件未加密,不要传递密码参数。 然后,它会检索并打印加密 ZIP 归档中的条目名称(文件和文件夹名称)列表。

foreach循环将每个名称输出到控制台。 这演示了 IronZIP 如何在简洁的方式下实现安全访问和检索密码保护的 ZIP 归档中的条目信息。

输出

如何使用C#压缩文件夹内的文件:图4 - 上述代码示例的输出

结论

综上所述,IronZIP 证明是一个强大且多功能的 C# 库,用于处理 ZIP 文件。 它的功能超越了基本的 压缩提取,提供了如 密码保护、加密和与各种归档格式兼容等功能。 无论您是在创建备份系统,管理电子邮件附件,还是从网络下载文件,IronZIP 都以简单和高效的方式简化了这些任务。

通过将 IronZIP 集成到您的 C# 应用程序中,您可以获得一个强大的工具来处理 ZIP 文件,提高数据安全性和优化文件传输流程。 您可以根据需要享受免费的 试用

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户