使用IRONZIP

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

发布 2024年二月18日
分享:

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

本文将涉及的内容

1.在我们的项目中安装 IronZIP

2.创建 ZIP 文件

3.创建受密码保护的 ZIP 文件

4.提取 ZIP 文件

5.提取受密码保护的 ZIP 文件

6.访问现有 ZIP 存档

什么是 IronZip?

IronZIP 是一款功能强大、用途广泛的 C# ZIP 归档文件库,可让您以编程方式创建、读取和提取 ZIP 文件。它支持多种归档格式,如 ZIP, TAR, GZIPBZIP2.它还支持 密码保护此外,IronZIP 还支持多种加密和压缩级别。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 包管理器控制台。只需运行以下命令即可:

Install-Package IronZip

或者,您也可以直接从官方的 IronZIP 网站。安装完成后,只需在 C# 代码顶部添加以下命名空间即可开始使用。

using IronZip;
using IronZip;
Imports IronZip
VB   C#

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

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

static void Main(string [] args)
{
    string [] fileArray = Directory.GetFiles(@"D:\Docs\");
    using (var archive = new IronZipArchive())
    {
        foreach (var file in fileArray)
        {
            // Add files to the ZIP
            archive.Add(file);
        }
        // Export the ZIP
        archive.SaveAs("myZipFile.zip");
    }
}
static void Main(string [] args)
{
    string [] fileArray = Directory.GetFiles(@"D:\Docs\");
    using (var archive = new IronZipArchive())
    {
        foreach (var file in fileArray)
        {
            // Add files to the ZIP
            archive.Add(file);
        }
        // Export the ZIP
        archive.SaveAs("myZipFile.zip");
    }
}
Shared Sub Main(ByVal args() As String)
	Dim fileArray() As String = Directory.GetFiles("D:\Docs\")
	Using archive = New IronZipArchive()
		For Each file In fileArray
			' Add files to the ZIP
			archive.Add(file)
		Next file
		' Export the ZIP
		archive.SaveAs("myZipFile.zip")
	End Using
End Sub
VB   C#

上述 C# 代码使用 IronZIP 库将所有文件压缩成一个 ZIP 文件。代码的操作如下

  • 我们声明了一个名为 fileArray 的字符串数组,并将 Directory.GetFiles 方法的结果分配给它,同时传递目录路径 ("D:\Docs") 作为参数。该方法返回一个字符串数组,其中包含指定目录中所有文件的全名。
  • 我们创建了一个 IronZipArchive 类的新实例,它代表内存中的一个 ZIP 压缩包。该实例被分配给一个名为 archive 的变量,并被包裹在一个 using 语句中,以确保在代码块结束时 ZIP 档案被处理掉。
  • 然后,我们使用一个 foreach 循环遍历 fileArray 数组,并为每个文件调用归档对象的 Add 方法,将文件名作为参数传递。该方法会在 ZIP 存档中添加一个新条目,其名称和内容与文件相同。
  • 最后,我们调用存档对象的 SaveAs 方法,并传递 ZIP 文件的名称 ("myZipFile.zip") 作为参数。该方法可将 ZIP 压缩包保存到当前文件系统中的一个文件。

这样,只需几行代码,我们就能轻松创建新的 ZIP 压缩包。

输出

输出为

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

创建受密码保护的 ZIP 文件

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

using (var archive = new IronZipArchive())
 {
     foreach (var file in fileArray)
     {
         // Add files to the ZIP
         archive.Add(file);
     }
    // Set Password and Encryption Method
     archive.Encrypt("myPa55word", EncryptionMethods.AES256);
     // Export the ZIP
     archive.SaveAs("myZipFile.zip");
 }
using (var archive = new IronZipArchive())
 {
     foreach (var file in fileArray)
     {
         // Add files to the ZIP
         archive.Add(file);
     }
    // Set Password and Encryption Method
     archive.Encrypt("myPa55word", EncryptionMethods.AES256);
     // Export the ZIP
     archive.SaveAs("myZipFile.zip");
 }
Using archive = New IronZipArchive()
	 For Each file In fileArray
		 ' Add files to the ZIP
		 archive.Add(file)
	 Next file
	' Set Password and Encryption Method
	 archive.Encrypt("myPa55word", EncryptionMethods.AES256)
	 ' Export the ZIP
	 archive.SaveAs("myZipFile.zip")
End Using
VB   C#

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

文件的加密过程如下所示。

输出

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

我们已经看过通过循环指定路径下的目录来创建 ZIP 文件的演示。现在,让我们以解压文件为例。

从 ZIP 档案中提取文件

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

IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles")
VB   C#

代码 IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip"、"myExtractedFiles")使用 IronZIP 从 "myZipFile.zip "中提取所有文件,并将它们放入 "myExtractedFiles "目录。这个简洁的方法简化了在 C# 中提取 ZIP 压缩包的过程,为文件提取任务提供了一个方便的解决方案。

输出

输出如下

如何使用 C#.NET 将文件夹中的文件压缩:图 3 - 上一代码示例中输出的文件

如何从受密码保护的 ZIP 文件中解压缩

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

IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word")
VB   C#

IronZipArchive 类的 ExtractArchiveToDirectory 方法可将 ZIP 压缩包中的所有条目提取到指定目录。该方法传递三个参数:ZIP 文件路径 ("myZipFile.zip"),目标目录的路径 ("我的提取文件")以及 ZIP 文件的密码 ("myPa55word"(我的 Pa55word).

这样,我们就可以轻松解压受密码保护的压缩文件了。

如何访问现有档案

IronZIP 提供了以下方法 访问现有档案 并查看文件中的所有条目。

using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
{
    // Get Entries list
    List<string> names = archive.GetArchiveEntryNames();
    foreach (string name in names)
    {
        Console.WriteLine(name);
    }
}
using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
{
    // Get Entries list
    List<string> names = archive.GetArchiveEntryNames();
    foreach (string name in names)
    {
        Console.WriteLine(name);
    }
}
Using archive = New IronZipArchive("myZipFile.zip", "myPa55word")
	' Get Entries list
	Dim names As List(Of String) = archive.GetArchiveEntryNames()
	For Each name As String In names
		Console.WriteLine(name)
	Next name
End Using
VB   C#

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

GetArchiveEntryNames 方法收集条目名称,然后通过 for-each 循环将每个名称输出到控制台。这演示了 IronZIP 如何以简洁的方式安全访问和检索受密码保护的 zip 档案中的条目信息。

输出

如何使用 C# 在文件夹中压缩文件:图 4 - 上一个代码示例的输出结果

结论

总之,IronZIP 被证明是一个用于处理 ZIP 文件的强大而通用的 C# 库。它的功能超出了基本的 压缩提取提供以下功能 密码保护此外,IronZIP 还具有加密功能,并兼容各种归档格式。无论你是创建备份系统、管理电子邮件附件,还是从网上下载文件,IronZIP 都能简单高效地简化这些任务。

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

< 前一页
如何在C#中将Zip存档提取到目录
下一步 >
如何在VB .NET中提取Zip文件

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 4,045 查看许可证 >