使用 IRONZIP 如何使用 C# 压缩文件夹中的文件 Curtis Chau 已更新:七月 28, 2025 Download IronZIP NuGet 下载 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article ZIP files are files that contain one or more compressed files or folders using the ZIP format. It is a common way of compressing and archiving multiple files or folders into a single file. They can reduce the size of the data, save disk space, and make it easier to transfer files over the internet. In this article, you will learn how to work with ZIP files in C# using the IronZIP library. You will see how to create, read, extract, and update ZIP files programmatically, as well as how to use various features of IronZIP, such as encryption, password protection, and compression levels. By the end of this article, you will be able to use IronZIP to handle ZIP files in your C# applications with ease. What we will Cover in this Article Install IronZIP within our Project Create a ZIP file Create Password Protected ZIP file Extract ZIP file Extract Password Protected ZIP File Access Existing ZIP archive What is IronZip? IronZIP is a powerful and versatile C# ZIP archive library that allows you to create, read, and extract ZIP files programmatically. It supports various archive formats, such as ZIP, TAR, GZIP, and BZIP2. It also supports password protection, encryption, and compression levels. IronZIP is compatible with .NET 8, 7, 6, Core, Standard, and Framework. IronZIP can help you handle various use cases and benefits of working with ZIP files, such as: Creating a backup system: You can use IronZIP to compress and encrypt your important files and folders into a ZIP archive and store them in a secure location. This way, you can save disk space and protect your data from unauthorized access. Sending email attachments: You can use IronZIP to reduce the size of your email attachments by compressing them into a ZIP file. This can help you avoid exceeding the file size limit and speed up the transmission process. Downloading files from the web: You can use IronZIP to download and extract ZIP files from the web, such as software packages, documents, images, and other types of files. This can help you save bandwidth and time and access the files you need with ease. Getting Started with IronZIP Before writing the code, you need to install the IronZIP NuGet Package in your C# project. IronZIP is a popular compression library available via NuGet. Installing the IronZIP Library To install IronZIP, you can use the NuGet Package Manager Console in Visual Studio. Simply run the following command: Install-Package IronZip Alternatively, you can download the package directly from the official IronZIP website. Once installed, you can get started by adding the following namespace to the top of your C# code. using IronZip; using IronZip; Imports IronZip $vbLabelText $csharpLabel Creating C# ZIP Files in a Folder You can easily create ZIP files in a folder using IronZIP. The following code will zip all the files from the specified directory. 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"); } } } 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"); } } } Imports System Imports System.IO Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Get all files from the specified directory Dim fileArray() As String = Directory.GetFiles("D:\Docs\") ' Create a new ZIP archive Using archive = New IronZipArchive() ' Iterate through each file and add it to the archive For Each file In fileArray archive.Add(file) ' Add files to the ZIP Next file ' Save the archive to a file archive.SaveAs("myZipFile.zip") End Using End Sub End Class $vbLabelText $csharpLabel The above C# code uses the IronZIP library to compress all the files into a single ZIP file. The code does the following: Declares a string array named fileArray and assigns it the result of the Directory.GetFiles method, passing the path of the directory ("D:\Docs") as a parameter. This method returns an array of strings containing the full names of all the files in the specified directory. Creates a new instance of the IronZipArchive class, which represents a ZIP archive in memory. The instance is assigned to a variable named archive and is wrapped in a using statement, which ensures that the ZIP archive is disposed of when the code block ends. Iterates over the fileArray array using a foreach loop, and for each file, it calls the Add method of the archive object, passing the file name as a parameter. This method adds a new entry to the ZIP archive, with the same name and content as the file. Calls the SaveAs method of the archive object, passing the name of the ZIP file (“myZipFile.zip”) as a parameter. This method saves the ZIP archive to a file in the current file system. In this way, you can easily create new ZIP archives using just a few lines of code. Output Output is as follows: Create a Password Protected ZIP file IronZIP provides an easy method to create password-protected ZIP files. The following code sample will compress files and create a new ZIP file with a password. 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"); } } } 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"); } } } Imports System Imports System.IO Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Get all files from the specified directory Dim fileArray() As String = Directory.GetFiles("D:\Docs\") ' Create a new ZIP archive Using archive = New IronZipArchive() ' Iterate through each file and add it to the archive For Each file In fileArray archive.Add(file) ' Add files to the ZIP Next file ' Set Password and Encryption Method archive.Encrypt("myPa55word", EncryptionMethods.AES256) ' Save the archive to a file archive.SaveAs("myZipFile.zip") End Using End Sub End Class $vbLabelText $csharpLabel The line archive.Encrypt("myPa55word", EncryptionMethods.AES256); sets a password ("myPa55word") for a ZIP archive using IronZIP. It enhances security by applying AES-256 encryption to the archive, ensuring that only users with the correct password can access its contents. This feature is valuable for protecting sensitive data during storage or transfer within C# applications. You need to pass the specified mode of the Encryption algorithm in the second parameter. The file is encrypted as shown below. Output We have seen the demonstration of creating a ZIP file by looping through the directories from the specified path. Now, let's move toward the example of unzipping files. Extracting Files from ZIP Archive IronZIP provides a method to extract files from a ZIP archive in C#. The following code sample will extract the compressed file within a ZIP archive. 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"); } } 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"); } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Extract all files from the ZIP archive to the specified directory IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles") End Sub End Class $vbLabelText $csharpLabel The code IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles"); uses IronZIP to extract all files from "myZipFile.zip" and places them in the "myExtractedFiles" directory. This concise method simplifies the process of extracting ZIP archives in C#, providing a convenient solution for file extraction tasks. Output Output is as follows: How to Extract from a Password-Protected ZIP File IronZIP also provides a method to extract password-protected ZIP files. The following code will use the IronZIP method to extract all the existing files and directories from the specified ZIP file. 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"); } } 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"); } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Extract all files from the password-protected ZIP archive to the specified directory IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word") End Sub End Class $vbLabelText $csharpLabel The ExtractArchiveToDirectory method of the IronZipArchive class extracts all the entries from a ZIP archive to a specified directory. It passes three arguments to the method: the path of the ZIP file (“myZipFile.zip”), the path of the destination directory (“myExtractedFiles”), and the password of the ZIP file (“myPa55word”). In this way, you can easily extract password-protected ZIP files. How to Access an Existing Archive IronZIP provides methods to access the existing archive and view all the entries present in the file. 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); } } } } 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); } } } } Imports System Imports System.Collections.Generic Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Open an existing ZIP archive with a password Using archive = New IronZipArchive("myZipFile.zip", "myPa55word") ' Get entries list Dim names As List(Of String) = archive.GetArchiveEntryNames() ' Iterate through each entry name and print it For Each name As String In names Console.WriteLine(name) Next name End Using End Sub End Class $vbLabelText $csharpLabel The provided C# code uses IronZIP to create a secure IronZipArchive instance by loading a ZIP file named "myZipFile.zip" with the password "myPa55word". Don't pass the password parameter if the file is not encrypted. It then retrieves and prints the list of entry names (file and folder names) within the encrypted ZIP archive. The GetArchiveEntryNames method gathers the entry names, and a foreach loop outputs each name to the console. This demonstrates how IronZIP enables secure access and retrieval of entry information from password-protected ZIP archives in a concise manner. Output Conclusion In conclusion, IronZIP proves to be a robust and versatile C# library for working with ZIP files. Its capabilities extend beyond basic compression and extraction, offering features such as password protection, encryption, and compatibility with various archive formats. Whether you're creating backup systems, managing email attachments, or downloading files from the web, IronZIP streamlines these tasks with simplicity and efficiency. By integrating IronZIP into your C# applications, you gain a powerful tool for handling ZIP files, enhancing data security, and optimizing file transfer processes. You can benefit from a free trial as needed. 常见问题解答 如何在 C# 中从文件夹创建 ZIP 文件? 您可以使用 IronZIP 通过遍历目录中的文件并将它们添加到新的 ZIP 存档来从文件夹创建 ZIP 文件。使用 IronZipArchive 类并调用 SaveAs 方法保存 ZIP 文件。 如何在 C# 项目中安装 IronZIP? 通过使用 Visual Studio 中的 NuGet 包管理器在 C# 项目中安装 IronZIP。在程序包管理器控制台中运行命令 Install-Package IronZip,或从 IronZIP 官方网站下载。 IronZIP 支持哪些格式的 ZIP 文件处理? IronZIP 支持包括 ZIP、TAR、GZIP 和 BZIP2 在内的各种存档格式,为不同的压缩和存档需求提供了灵活性。 我可以在 C# 中加密创建的 ZIP 文件吗? 是的,您可以通过使用 AES-256 加密与 IronZIP 的 Encrypt 方法来加密 ZIP 文件,以确保存档中的数据安全。 如何在 C# 中从 ZIP 文件提取文件? 使用 IronZIP 从 ZIP 存档中提取文件时,使用 ExtractArchiveToDirectory 方法,指定源 ZIP 文件和目标目录。 是否可以在 C# 中处理有密码保护的 ZIP 文件? 是的,您可以通过在使用如 ExtractArchiveToDirectory 这样的方法时提供密码来使用 IronZIP 处理有密码保护的 ZIP 文件,以安全地访问内容。 使用 IronZIP 管理 ZIP 文件有哪些优势? IronZIP 通过提供加密、密码保护和支持多种存档格式等功能,简化了文件备份、电子邮件附件管理和网页下载等任务。 IronZIP 支持 .NET 8 和其他版本吗? IronZIP 与 .NET 8、7、6、Core、Standard 和 Framework 兼容,使其可灵活集成到各种 C# 项目中。 开发人员如何访问 IronZIP 的试用版? 开发人员可以访问 IronZIP 网站的许可或下载部分来获取免费试用版本,以评估其功能。 使用 ZIP 文件进行数据传输有什么好处? ZIP 文件因为减小文件大小、节省磁盘空间并能够更高效地在互联网上传送多个文件而对数据传输有益。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新六月 22, 2025 如何在 C# 中将 ZIP 归档文件提取到目录 ZIP 文件是将多个文件和目录捆绑成单一归档的便捷方式。 阅读更多 已更新七月 28, 2025 如何在 C# 中创建带密码的 ZIP 文件 在本文中,我们将探索如何使用 C# 和 IronZIP 库创建一个密码保护的 ZIP 文件。 阅读更多 已更新七月 28, 2025 如何在 C# 中将文件解压到目录 无论您是在开发 Windows 应用程序还是 .NET 项目,理解文件解压过程都非常有价值。 阅读更多 如何在 C# 中将 ZIP 归档文件提取到目录如何在 VB .NET 中提取 ZIP 文件