与其他组件比较

压缩档案 C#(开发者教程)

发布 2023年十月30日
分享:

ZIP 压缩包是一种常用格式,用于将单个文件或多个文件的整个集合压缩打包成一个 ZIP 包容器或 ZIP 文件。在 C# 中,您可以使用 System.IO.Compression 命名空间轻松处理 ZIP 存档,该命名空间提供了 ZipArchive 和 ZipFile 等类,用于对 ZIP 文件执行各种操作。在本教程中,我们将探讨如何使用相对路径在 C# 中创建 ZIP 文件、从压缩文件中提取数据以及操作 ZIP 存档。

前提条件

1.对 C# 编程有基本了解。

2.Visual Studio 或任何 C# 开发环境。

步骤 1:创建新的 C#项目

打开 C# 开发环境并创建一个新的 C# 项目,使用 ZipArchive archive=new ZipArchive 实现 Zip 存档和压缩文本文件功能().您可以选择控制台应用程序或任何其他适合您使用情况的项目类型。

第 2 步:用 C## 从文件夹创建 Zip 档案

我们可以使用 `ZipFile.CreateFromDirectory 轻松地从现有目录创建一个新的 Zip 压缩包。()方法,如下例所示。

static void Main(string [] args)
{
ZipFile.CreateFromDirectory(@"D:\Certificate", @"D:\Certificate.zip", CompressionLevel.SmallestSize, true);
}
static void Main(string [] args)
{
ZipFile.CreateFromDirectory(@"D:\Certificate", @"D:\Certificate.zip", CompressionLevel.SmallestSize, true);
}
Shared Sub Main(ByVal args() As String)
ZipFile.CreateFromDirectory("D:\Certificate", "D:\Certificate.zip", CompressionLevel.SmallestSize, True)
End Sub
VB   C#

第一个参数@"D:\Certificate"指定要压缩的源目录,第二个参数@"D:\Certificate.zip"指定生成的 ZIP 压缩包的位置和名称。第三个参数 CompressionLevel.SmallestSize 决定压缩级别,其中 SmallestSize 表示最小的文件大小,即使压缩二进制数据需要更长的时间。第四个参数 CompressionLevel.true 指定是否在 ZIP 压缩包中保留目录结构和文件系统,以确保文件夹的结构得以保留。

步骤 3:更新 C&num 中的 Zip 档案;

在下面的示例中,我们将说明用 C# 处理现有 ZIP 压缩包的过程。具体来说,我们将探讨如何使用 ZipArchive archive=zipfile.openread 打开已创建的 ZIP 压缩包、修改其内容并添加新文件和现有文件。

 using (FileStream zipToOpen = new FileStream(@"D:\Invoices.zip", FileMode.Open))
 {
//var archive= new ZipArchive
     using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
     {
         archive.CreateEntryFromFile(@"D:/Invoice.pdf", "Invoices/myInvoice.pdf");
         ZipArchiveEntry entry = archive.CreateEntry("Readme.txt");
//using StreamWriter writer=new StreamWriter
         using (StreamWriter writer = new StreamWriter(entry.Open()))
         {
            writer.WriteLine("This folder contains the file compressed using C#");
            writer.WriteLine("========================");
         }
     }
 }
 using (FileStream zipToOpen = new FileStream(@"D:\Invoices.zip", FileMode.Open))
 {
//var archive= new ZipArchive
     using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
     {
         archive.CreateEntryFromFile(@"D:/Invoice.pdf", "Invoices/myInvoice.pdf");
         ZipArchiveEntry entry = archive.CreateEntry("Readme.txt");
//using StreamWriter writer=new StreamWriter
         using (StreamWriter writer = new StreamWriter(entry.Open()))
         {
            writer.WriteLine("This folder contains the file compressed using C#");
            writer.WriteLine("========================");
         }
     }
 }
Using zipToOpen As New FileStream("D:\Invoices.zip", FileMode.Open)
'var archive= new ZipArchive
	 Using archive As New ZipArchive(zipToOpen, ZipArchiveMode.Update)
		 archive.CreateEntryFromFile("D:/Invoice.pdf", "Invoices/myInvoice.pdf")
		 Dim entry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
'using StreamWriter writer=new StreamWriter
		 Using writer As New StreamWriter(entry.Open())
			writer.WriteLine("This folder contains the file compressed using C#")
			writer.WriteLine("========================")
		 End Using
	 End Using
End Using
VB   C#

上述代码使用 FileStream 在读取模式下打开了位于 "D:\Invoices.zip" 的现有 ZIP 压缩包,并在更新模式下创建了一个 ZipArchive 用于读取和修改压缩包的内容。然后,它使用 CreateEntryFromFile 方法将 "D: "中的 "Invoice.pdf "添加到存档中,将其放在 "Invoices "目录下并命名为 "myInvoice.pdf"。

发票目录

步骤 ###4: 提取 Zip 档案 ####

以下 C# 代码可将 ZIP 文件的内容提取到指定目录中。

ZipFile.ExtractToDirectory(@"D:\Certificate.zip", @"D:\ExtractedCertificate");
ZipFile.ExtractToDirectory(@"D:\Certificate.zip", @"D:\ExtractedCertificate");
ZipFile.ExtractToDirectory("D:\Certificate.zip", "D:\ExtractedCertificate")
VB   C#

上面的代码从 ZIP 压缩包中解压文件。它指定源 ZIP 压缩包位于 "D:\Certificate.zip",并指定目标目录为 "D:\ExtractedCertificate"。代码会解压压缩包,将其内容放入指定目录。你可以提供工作目录的绝对路径或相对路径,以创建压缩文本文件。

介绍 IronPDF

IronPDF 是一个多功能、功能强大的 C# 库,可简化.NET 应用程序中 PDF 文档的创建、操作和渲染。它为开发人员提供了在 C# 项目中轻松生成、编辑和转换 PDF 文件的类和方法。无论您需要创建 PDF 报告、发票还是交互式表单,IronPDF 都能提供广泛的特性和功能,使其成为需要在 .NET 应用程序中实现全面 PDF 功能的企业和开发人员不可或缺的库。有了 IronPDF,您可以将 PDF 生成和操作无缝集成到 C# 应用程序中,从而高效处理各种与 PDF 相关的任务。

IronPDF 的功能

IronPDF 为在 C# 应用程序中处理 PDF 提供了一套全面的特性和功能。其主要功能包括

PDF 生成:您可以使用各种文本、图像和图形元素轻松创建新的 PDF 文档或修改现有文档。

HTML 至 PDF 转换:通过高保真渲染将 HTML 页面、URL 甚至原始 HTML 内容转换为 PDF。这对于生成报告或捕捉网页内容特别有用。

PDF 渲染:渲染 PDF 以在应用程序中显示,让您可以直接在 C# 程序中查看 PDF 文档并与之交互。

PDF 编辑:通过添加、删除或更新文本、图像和其他内容来修改现有的 PDF 文档。您还可以操作页面布局和结构。

PDF 表单:从交互式 PDF 表单中创建、填充和提取数据,轻松实现调查、问卷和其他数据采集应用。

PDF 加密:使用各种加密算法对 PDF 文件进行加密,并设置查看、编辑和打印权限,从而保护 PDF 文件。

PDF 文本提取:从 PDF 文档中提取文本和数据,轻松解析和分析内容,以便编制索引、进行搜索或提取数据。

图像和图形支持:在 PDF 文件中添加和处理图像、形状和图形元素,实现丰富的可视化内容。

PDF 打印:直接从 C# 应用程序向物理或虚拟打印机打印 PDF。

高级文本格式:为 PDF 文档中的文本应用各种字体样式、颜色和格式选项。

PDF 合并和分割:根据需要将多个 PDF 文档合并为一个文档,或将大型 PDF 文件分割成较小的部分。

PDF 可访问性:通过添加标签和替代文本等可访问性功能,确保残障人士可访问您的 PDF 文档。

跨平台支持:IronPDF 可在 Windows、Mac 和 Linux 环境中运行,使您能够构建跨平台应用程序。

许可选项:IronPDF 提供灵活的 许可选项包括免费试用版,供开发人员选择最适合其需求的版本。

Conclusion

总之,在 C# 中使用 ZIP 压缩文件为各种情况提供了一套宝贵的工具,从压缩文件用于存储或分发到有效地管理数据。无论是创建、提取还是操作 ZIP 存档,"System.IO.Compression "命名空间都提供了一个用户友好且功能强大的工具包。此外,虽然 ZIP 归档对于管理文件相关任务至关重要,但值得注意的是,在更广泛的文档和报告生成场景中,IronPDF 等库扩展了 C# 应用程序的功能,提供了全面的 PDF 生成、编辑和渲染功能,使其成为满足以文档为中心的更复杂需求的强大选择。通过将 C# 的本地 ZIP 存档功能与 IronPDF 的高级 PDF 功能相结合,开发人员可以创建多功能的完整文档管理解决方案,以满足他们的各种需求。

< 前一页
IronXL与GemBox.Spreadsheet的对比
下一步 >
EPPlus将Excel读取到DataTable的C# (IronXL教程)

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

免费NuGet下载 总下载量: 988,189 查看许可证 >