跳至页脚内容
使用 IRONZIP

C# ZIP 文件(使用 IronZIP 的开发人员教程)

ZIP \u662f\u4e00\u79cd\u6d41\u884c\u7684\u65b9\u6cd5\uff0c\u53ef\u4ee5\u4f7f\u7528 FileStream \u9ad8\u6548\u5730\u5c06\u591a\u4e2a\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u538b\u7f29\u5e76\u5408\u5e76\u6210\u4e00\u4e2a\u7edf\u4e00\u7684 ZIP \u538b\u7f29\u5305\u3002 在 C# 中使用这些文件变得很容易,使用 IronZIP 命名空间,该命名空间提供类来创建并从路径中提取现有的 ZIP 文件,也可操作 ZIP 存档。 无论您是在压缩文件、处理受密码保护的 ZIP 还是解压缩文件,IronZIP 命名空间中的 ZipFile 类都是您不可或缺的伙伴。

在此教程中,我们不仅探索了创建和提取 ZIP 归档文件的基本流程,还学习了实现它的代码示例。 ZipArchive 类无缝进阶到字符串路径,使您能够以无与伦比的精确度导航和操控 ZIP 文件。

此外,除了 ZIP 操作之外,我们还将探讨 IronPDF,一种在不影响文档完整性的前提下压缩 PDF 文件的工具。 IronZIP 和 IronPDF 的搭配为开发人员提供了一套强大的工具,可以在 C# 环境中高效管理压缩文件并简化 PDF。

前提条件

在您探索使用 IronZIP 和 IronPDF 操作 ZIP 文件之前,请确保满足以下先决条件:

  1. Visual Studio: 安装 Visual Studio 或任何其他您选择的 C# 集成开发环境 (IDE)。
  2. 基本 C# 知识: 熟悉 C# 编程语言的基本概念。

安装 IronZIP 包

要开始使用 IronZIP,只需在您的项目中快速安装 IronZIP NuGet 包。 在 NuGet 包管理器控制台中执行以下命令:

Install-Package IronZip

或者,直接从 IronZIP 官方 NuGet 网站 下载包。

安装完成后,在您的 C# 代码开头添加 using IronZip; 语句以开始使用。

应用许可证密钥

确保您拥有有效的 IronZIP 许可证或试用密钥。通过将许可证密钥赋值给 License 类的 LicenseKey 属性来应用许可证密钥。 在导入语句之后并在使用任何 IronZIP 方法之前立即包含以下代码:

using IronZip;

namespace YourNamespace
{
    class Program
    {
        static void Main(string[] args)
        {
            // Apply the IronZIP license key
            IronZip.Licensing.License.LicenseKey = "IRONZIP.MYLICENSE.KEY.1EF01";
            // Your ZIP manipulation code using IronZIP
        }
    }
}
using IronZip;

namespace YourNamespace
{
    class Program
    {
        static void Main(string[] args)
        {
            // Apply the IronZIP license key
            IronZip.Licensing.License.LicenseKey = "IRONZIP.MYLICENSE.KEY.1EF01";
            // Your ZIP manipulation code using IronZIP
        }
    }
}
Imports IronZip

Namespace YourNamespace
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Apply the IronZIP license key
			IronZip.Licensing.License.LicenseKey = "IRONZIP.MYLICENSE.KEY.1EF01"
			' Your ZIP manipulation code using IronZIP
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

这一步对于释放 IronZIP 在您的项目中的全部潜力至关重要。

创建一个 ZIP 文件

使用 IronZIP 创建一个 ZIP 文件很简单。 利用 IronArchive 类创建一个空的 ZIP 存档,然后向其中添加文件。 以下代码段演示了创建名为 "Images.zip" 的 ZIP 文件并添加四个图像文件的过程:

using IronZip;

namespace CSharpZipArchive
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create an archive called Images.zip
            using (var archive = new IronArchive("Images.zip"))
            {
                // Add files to the ZIP
                archive.Add(@"E:\Datasets\1002-v1.png");
                archive.Add(@"E:\Datasets\1002-v2.png");
                archive.Add(@"E:\Datasets\1002-v3.png");
                archive.Add(@"E:\Datasets\1002-v4.png");
            }  // The archive is automatically closed here
        }
    }
}
using IronZip;

namespace CSharpZipArchive
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create an archive called Images.zip
            using (var archive = new IronArchive("Images.zip"))
            {
                // Add files to the ZIP
                archive.Add(@"E:\Datasets\1002-v1.png");
                archive.Add(@"E:\Datasets\1002-v2.png");
                archive.Add(@"E:\Datasets\1002-v3.png");
                archive.Add(@"E:\Datasets\1002-v4.png");
            }  // The archive is automatically closed here
        }
    }
}
Imports IronZip

Namespace CSharpZipArchive
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create an archive called Images.zip
			Using archive = New IronArchive("Images.zip")
				' Add files to the ZIP
				archive.Add("E:\Datasets\1002-v1.png")
				archive.Add("E:\Datasets\1002-v2.png")
				archive.Add("E:\Datasets\1002-v3.png")
				archive.Add("E:\Datasets\1002-v4.png")
			End Using ' The archive is automatically closed here
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

using 语句创建了 IronArchive 类的一个有范围的实例,并将其与变量 archive 关联。 IronArchive 构造函数接受一个参数:ZIP 文件的名称(在本例中为 "Images.zip")。

代码将四个文件添加到由 archive 变量表示的 ZIP 存档中。 文件通过其完整路径指定:

  • E:\Datasets\1002-v1.png
  • E:\Datasets\1002-v2.png
  • E:\Datasets\1002-v3.png
  • E:\Datasets\1002-v4.png

由于 IronArchive 类实现了 IDisposable,使用 using 语句可以确保存档正确关闭并在退出代码块时释放资源。

通过这种方式,该程序创建了一个名为 "Images.zip" 的 ZIP 存档并向其中添加了四个图像文件。 IronZip 使这一过程超级简单、快速和高效。

提取 ZIP 文件

我们可以使用一行代码在 C# 中提取 ZIP 文件。

using IronZip; 

namespace YourNamespace
{
    public class ExtractionExample
    {
        public static void Main(string[] args)
        {
            // Extract contents of the ZIP archive
            IronArchive.ExtractArchiveToDirectory("Images.zip", "Extracted Images");
        }
    }
}
using IronZip; 

namespace YourNamespace
{
    public class ExtractionExample
    {
        public static void Main(string[] args)
        {
            // Extract contents of the ZIP archive
            IronArchive.ExtractArchiveToDirectory("Images.zip", "Extracted Images");
        }
    }
}
Imports IronZip

Namespace YourNamespace
	Public Class ExtractionExample
		Public Shared Sub Main(ByVal args() As String)
			' Extract contents of the ZIP archive
			IronArchive.ExtractArchiveToDirectory("Images.zip", "Extracted Images")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

上述代码提取了名为 "Images.zip" 的 ZIP 存档文件的内容。 提取的文件被放置在名为 "Extracted Images" 的目录中。 IronArchive 类提供了 ExtractArchiveToDirectory 方法来高效提取 ZIP 文件的内容。

csharp-zip-library-tutorial-1 这句简洁的代码有效地处理了提取过程,简化了文件管理。

使用 C# 向现有的 ZIP 文件添加文件

在 C# 软件应用中,向现有 ZIP 文件添加文件对于动态内容管理来说很有价值。 想象一个文件管理应用程序,用户可以轻松通过添加新文件来扩展压缩存档。 IronZIP 提供了无缝的功能来修改任何现有的 ZIP 文件。

using IronZip;

namespace CSharpZipArchive
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Open an existing ZIP file and create a new one
            using (var archive = IronArchive.FromFile("Images.zip", "NewImages.zip"))
            {
                // Add new files to the ZIP
                archive.Add(@"E:\Datasets\1011-v1.png");
                archive.Add(@"E:\Datasets\1011-v2.png");
            }  // The new archive is automatically closed here
        }
    }
}
using IronZip;

namespace CSharpZipArchive
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Open an existing ZIP file and create a new one
            using (var archive = IronArchive.FromFile("Images.zip", "NewImages.zip"))
            {
                // Add new files to the ZIP
                archive.Add(@"E:\Datasets\1011-v1.png");
                archive.Add(@"E:\Datasets\1011-v2.png");
            }  // The new archive is automatically closed here
        }
    }
}
Imports IronZip

Namespace CSharpZipArchive
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Open an existing ZIP file and create a new one
			Using archive = IronArchive.FromFile("Images.zip", "NewImages.zip")
				' Add new files to the ZIP
				archive.Add("E:\Datasets\1011-v1.png")
				archive.Add("E:\Datasets\1011-v2.png")
			End Using ' The new archive is automatically closed here
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

IronArchive.FromFile("Images.zip", "NewImages.zip") 方法从名为 "Images.zip" 的现有 ZIP 文件创建了一个存档对象,并指定新存档应命名为 "NewImages.zip"。

using 块内的两行代码将文件添加到新创建的存档中:

  • archive.Add(@"E:\Datasets\1011-v1.png");
  • archive.Add(@"E:\Datasets\1011-v2.png");

这些行将指定的图像文件添加到 "NewImages.zip" 存档中。

File System

压缩 PDF 文件

除了管理 ZIP 文件之外,C# 还提供了无缝压缩 PDF 文件的功能。 借助第三方库:IronPDF,这项任务得以实现。 它作为 压缩 PDF 的可靠解决方案,能够保持其质量。

介绍IronPDF

IronPDF 是一个多功能的 C# 库,旨在支持开发人员在其 .NET 应用程序中高效处理 PDF 文档。 它提供了许多功能,包括 PDF 生成、操作、文本和图像提取、表单处理、数字签名、HTML 转 PDF 转换、PDF 压缩和安全增强。 这些功能使其成为在 .NET 框架中执行 PDF 创建、编辑、报表生成和文档管理等任务的无价工具,确保生产力和 PDF 操作的定制化能力。

安装IronPDF

要将 IronPDF 集成到您的项目中,请在包管理器控制台中执行以下命令:

Install-Package IronZip

编写 C# 代码压缩 PDF 文件

以下代码示例演示了在保持存档质量的同时压缩 PDF 文件。

using IronPdf;

namespace YourNamespace
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Load the PDF document
            var pdf = new PdfDocument(@"E:\myPDF.pdf");

            // Compress images in the PDF to 60% of original quality
            pdf.CompressImages(60);

            // Save the compressed PDF
            pdf.SaveAs(@"E:\myCompressedPDF.pdf");
        }
    }
}
using IronPdf;

namespace YourNamespace
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Load the PDF document
            var pdf = new PdfDocument(@"E:\myPDF.pdf");

            // Compress images in the PDF to 60% of original quality
            pdf.CompressImages(60);

            // Save the compressed PDF
            pdf.SaveAs(@"E:\myCompressedPDF.pdf");
        }
    }
}
Imports IronPdf

Namespace YourNamespace
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Load the PDF document
			Dim pdf = New PdfDocument("E:\myPDF.pdf")

			' Compress images in the PDF to 60% of original quality
			pdf.CompressImages(60)

			' Save the compressed PDF
			pdf.SaveAs("E:\myCompressedPDF.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

在上面的代码中,我们使用 IronPDF 打开 "myPDF.pdf"。 CompressImages 方法将图像质量降低到 60%,压缩后的 PDF 保存在指定位置的 "myCompressedPDF.pdf" 中。

输出

执行上述代码会产生有形的文件大小减少,如输出所示,压缩后的 PDF 尺寸从原 0.9 MB 缩小到 254 KB。这展示了 IronPDF 在高效压缩 PDF 文件而不影响其质量方面的有效性。

File Size Comparison

使用 IronZIP 和 IronPDF 在 C# 中高效管理文件

在 C# 开发中,IronZIP 和 IronPDF 的组合为全面的文件管理提供了一种强大的解决方案。 IronZIP 在高效压缩和操作 ZIP 文件方面表现出色,为开发人员提供了无缝的创建和提取存档的体验。 同时,IronPDF 是一个强大的工具,用于处理 PDF 文档,使文件压缩时依然保持文档的完整性。 这种集成使开发人员能够在压缩存档和 PDF 文件间轻松切换,提升了应用程序的整体功能和性能。

无论是将多样化文件压缩到一个 ZIP 存档,还是优化 PDF 文档的大小,IronZIP 和 IronPDF 联合起来形成了一个灵活的开发工具包,解决了一系列与文件有关的挑战。

结论

总之,IronZIP 为 C# 提供了强大的能力来处理压缩文件,使开发人员能够高效地创建 ZIP 文件、提取并操作存档。 IronPDF 也是用于压缩 PDF 文件的强大工具,使其易于在保持文档完整性的同时缩小文件大小。 开发人员可以利用这些功能来提升应用程序的性能和功能,确保无缝处理归档和压缩文件。 此外,值得注意的是,IronPDF 提供了一种灵活的许可模式,包括 免费试用,允许开发人员探索其功能并确定最适合其项目的方案。 这一试用期为开发人员提供了一个有价值的机会来评估 IronZIP 和 IronPDF 的功能,从而决定是否进行 许可

常见问题解答

如何在 C# 中创建一个 ZIP 文件?

要在 C# 中创建一个 ZIP 文件,您可以使用 IronZIP 库中的 IronArchive 类。该类允许您创建一个空的 ZIP 压缩包并添加文件,提供高效的方法来管理 ZIP 内容。

如何在 C# 中从 ZIP 压缩包中提取文件?

可以使用 IronZIP 库的 IronArchive 类中的 ExtractArchiveToDirectory 方法从 ZIP 压缩包中提取文件。该方法允许您指定要提取文件的目录。

我可以在 C# 中处理密码保护的 ZIP 文件吗?

是的,IronZIP 提供了管理密码保护的 ZIP 文件的功能,能够安全地压缩和提取敏感数据。

在 C# 中安装 ZIP 库包的步骤是什么?

要安装 IronZIP 库,请在 NuGet 包管理器控制台中使用命令 Install-Package IronZip,或直接从官方网站下载。

如何在 C# 中为 ZIP 库应用许可证密钥?

要为 IronZIP 应用许可证密钥,请在应用程序中将您的许可证密钥分配给 Licensing.License 类的 LicenseKey 属性。

如何在 C# 中压缩 PDF 文件?

要在 C# 中压缩 PDF 文件,可以使用 IronPDF。加载 PDF 文档并应用 CompressImages 方法以降低图像质量,然后将压缩的 PDF 保存到所需位置。

C# 的 PDF 库是否提供试用版?

是的,IronPDF 提供免费试用版,允许开发者在签署许可协议之前探索其功能。

在 C# 中处理 ZIP 和 PDF 文件的先决条件是什么?

在 C# 中处理 ZIP 和 PDF 文件,您需要安装 Visual Studio 或类似的 C# 集成开发环境,并具备 C# 编程概念的基本理解。您还需要 IronZIP 和 IronPDF 库。

一种用于处理 ZIP 文件的 C# 工具是什么?

IronZIP 是一个 C# 库,设计用于高效地创建、操作和提取 ZIP 压缩包,是开发人员在 .NET 应用程序中处理 ZIP 文件的理想选择。

Curtis Chau
技术作家

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

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。