在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
ZIP 是一种归档入口文件系统格式,支持无损数据压缩。 ZIP 文件可能包含一个或多个经过压缩的文件或目录。 ZIP 文件格式允许使用多种压缩算法,但最常用的是 DEFLATE。 随后,ZIP 格式很快得到了许多软件工具的支持。 顶级操作系统提供商很早就提供了 ZIP 存档支持。微软从 Windows 98 开始就提供 ZIP 文件支持,其他公司也纷纷效仿。
在本文中,我们将探索使用IronZIP打开ZIP压缩档案文件或已提取文件的一种现代、简单且高效的方法。 我们将从总体上了解 ZIP 文件及其优势。 然后,我们将查看系统名称空间中可用的选项,以便使用 ZIP 文件格式。 接下来,我们将逐步说明如何打开ZIP文件、将ZIP文件解压到临时文件夹、创建新ZIP文件以及向现有ZIP文件添加文件。
压缩:这种技术使用多种压缩算法,如 Implode、Deflate、Deflate64、bzip2、LZMA、WavPack、PPMd 等,来减少归档文件/文件夹的大小。
减少传输时间:较小的文件大小意味着更快的传输时间,特别是在通过互联网发送文件时。 这对于电子邮件附件和从网站上传或下载文件尤其有利。
文件合并:ZIP 文件使您能够将多个文件合并到单个存档中,从而减少需要管理的文件数量。 这对于组织项目或分发由多个文件组成的软件非常有用。
IronZIP 库的介绍和文档可以在此处找到。 在 C# 应用程序中,可以通过各种方式创建和提取 ZIP 文件。 IronZIP NuGet 软件包具有以不同格式 ZIP、TAR、GZIP 和 BZIP2 归档文件的所有功能。以下是如何在现代应用程序编程中使用 IronZIP 构建下一代应用程序的示例步骤,以打开 ZIP 文件、提取 ZIP 文件、创建新的 ZIP 文件等。
可使用 Visual Studio 创建 .NET 控制台应用程序。 打开 Visual Studio 并选择创建项目。 在这里,您可以看到创建项目的各种模板。 演示或测试代码的最简单方法是创建一个控制台应用程序。 我们将选择控制台应用程序项目模板。
在下面的窗口中,您可以输入项目名称、项目在文件系统中的存储位置以及解决方案文件夹的路径。 解决方案和项目文件夹可以保持一致,也可以放在不同的文件夹中。
下一步是为项目选择 .NET Framework 版本。 如果您想在特定版本中进行开发,请指定您喜欢的版本,否则请始终选择最新的稳定版本来创建项目。 最新版本可从 Microsoft 网站下载。然后单击 "创建 "生成控制台应用程序。
这将从模板中创建默认项目,并将项目和解决方案文件存储在指定目录中。 项目创建完成后,其外观将如下所示。 有时,在最新版本的 program.cs 中并没有使用该类。
using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string [] args)
{
Console.WriteLine("Hello World!");
}
}
}
using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string [] args)
{
Console.WriteLine("Hello World!");
}
}
}
Imports System
' See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!")
Dim MyApp As namespace ' Note: actual namespace depends on the project name.
If True Then
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' internal class Program
' {
' static void Main(string [] args)
' {
' Console.WriteLine("Hello World!");
' }
' }
End If
要创建新的 ZIP 文件并提取所有 ZIP 压缩文件,我们可以使用默认库中的 System.IO.Compression。 在上述代码中,ZipFile.OpenRead
和 ZipFile.Open
静态方法可用于打开ZIP文件或提取ZIP文件。
using System.IO.Compression;
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath,
System.IO.Compression.ZipArchive zipArchive)
{
var file = Path.GetFileName(filePath); // get file name in var file
zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip, ZipArchiveMode.Create))
{
AddEntry(file1, archive);
AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
using System.IO.Compression;
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath,
System.IO.Compression.ZipArchive zipArchive)
{
var file = Path.GetFileName(filePath); // get file name in var file
zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip, ZipArchiveMode.Create))
{
AddEntry(file1, archive);
AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
Imports System.IO.Compression
Console.WriteLine("-----------Zip - Unzip-----------")
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'static void AddEntry(string filePath, System.IO.Compression.ZipArchive zipArchive)
'{
' var file = Path.GetFileName(filePath); ' get file name in var file
' zipArchive.CreateEntryFromFile(filePath, file);
'}
Dim zip = "myFile.zip"
Using archive As System.IO.Compression.ZipArchive = ZipFile.OpenRead(zip, ZipArchiveMode.Create)
AddEntry(file1, archive)
AddEntry(file2, archive)
End Using
Dim dirToExtract = "extract"
If Directory.Exists(dirToExtract) = False Then
Directory.CreateDirectory(dirToExtract)
End If
ZipFile.ExtractToDirectory(zip, dirToExtract) 'extracted file
在上述代码中,我们有一个名为 myFile.zip 的 ZIP 文件,并使用了系统命名空间。 OpenRead
方法用于以指定模式打开 ZIP 文件。 这也可用于创建新的 ZIP 压缩文件。 打开后,我们可以使用方法AddEntry
添加一个新的存档条目,然后使用ExtractToDirectory
将ZIP存档文件或选定文件提取到指定目录。 检查目录是否存在。 如果不存在,则使用Directory.CreateDirectory
创建目录。 dirToExtract
是解压ZIP归档文件的目录路径。 代码中的最后一行ZipFile.ExtractToDirectory(zip, dirToExtract)
提取了一个ZIP文件。所有文件都保存在目录路径中。
从 Visual Studio 打开项目管理器,搜索 IronZIP 软件包。 然后选择最新版本并点击安装。 您可以从下拉菜单中更改要安装的版本。 然后点击安装。
使用 IronZIP 创建 ZIP 归档文件并添加文件
IronZIP 是由 Iron Software 开发的归档压缩和解压缩库。 除了广泛使用的ZIP格式外,它还可以处理TAR、GZIP和BZIP2。
IronZIP 是一个 C# ZIP 压缩库,优先考虑准确性、易用性和速度。 用户友好的 API 使开发人员能够在几分钟内轻松地将归档功能添加到现代 .NET 项目中。
IronZIP 与 System.Io.Compression
库相比有许多优势。 您可以在压缩过程中指定所需的压缩率,还可以使用不同的压缩算法 ZIP、TAR、GZIP 和 BZIP2。它还支持移动、网络和桌面平台以及各种 .NET 版本。
IronZIP 拥有 IronArchive
类,该类可用于创建 ZIP 文件,以及提取 ZIP 文件,并支持使用单个库创建 TAR、GZIP 和 BZIP2 压缩文件。 以下是创建 ZIP 文件的代码。IronArchive
类用于创建/打开 ZIP 文件,然后对其进行归档。Add
方法用于向归档添加文件条目,如下所示。
// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
// Add files to the zip
archive.Add(file1);
archive.Add(file2);
archive.SaveAs(archivePath);
}
// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
// Add files to the zip
archive.Add(file1);
archive.Add(file2);
archive.SaveAs(archivePath);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
初始源代码包含指定 ZIP 压缩文件名称和检查指定目录是否存在所需的设置。 然后我们使用Add
方法将文件存档以创建ZIP文件。 压缩参数中的第二个参数为 1 表示较低,9 表示较高。 txt 文件可以最大使用 9 压缩而不会丢失,图像文件可以使用较低的压缩率以避免数据丢失。
IronArchive
类也可以用于从 ZIP 压缩文件中提取文件。所有文件都使用 IronArchive.ExtractArchiveToDirectory
提取到指定目录,具体如下。
var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
Dim extractionPath = "IronZipFiles"
' extract files from zip
If Directory.Exists(extractionPath) = False Then
Directory.CreateDirectory(extractionPath)
End If
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath)
上述代码将 ZIP 文件提取到一个目录中。 代码会检查目录是否存在,然后将 ZIP 压缩文件解压缩到指定目录。
上述代码需要许可证密钥才能使用。 此密钥需要放在 appsettings.json 中
"IronZip.LicenseKey": "your lincese key"
"IronZip.LicenseKey": "your lincese key"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'"IronZip.LicenseKey": "your lincese key"
开发人员可以在此处注册以获取试用许可证,并且不需要信用卡。 您可以提供电子邮件 ID 并注册免费试用。
使用静态FromFile
方法从IronZIP中打开一个现有的档案。此方法还需要指定将作为输出创建的新档案的文件名。
//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
// Add files
file.Add(file3);
}
//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
// Add files
file.Add(file3);
}
'add to existing archive
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"
Using file = IronArchive.FromFile(archivePath, archivePlusPath)
' Add files
file.Add(file3)
End Using
该代码使用IronArchive.FromFile
静态void方法打开现有的ZIP文件,然后将新文件添加为归档条目。 一旦文件被处理,那么文件就会被成功保存。
IronZIP库会根据客户/用户的反馈不断更新,所有更新可以在这里找到。
总之,在云主机提供商收取存储和数据传输费用的现代应用程序开发中,ZIP 文件编程是一项必不可少的技能。 掌握这项技能可以帮助程序员降低应用程序的成本,提高应用程序的性能。
通过遵循安装步骤并探索提供的代码示例,开发人员可以快速利用IronZIP的强大功能轻松创建新文件并处理Zip/Unzip任务。 随着越来越多的应用程序现代化并迁移到云端,拥有像IronZIP这样的可靠ZIP库,装备C#开发人员以满足现代应用程序开发的需求。 因此,拥抱IronZIP的强大功能,为您的C#应用程序解锁处理ZIP文件的新可能性。
IronZIP 为其开发人员提供广泛的支持。 要了解更多关于IronZIP如何在C#中工作的信息,请访问此处。 IronZIP 提供免费试用许可证,这是了解 IronZIP 及其功能的好机会。
Iron Software 拥有多种其他库,探索它们以获得更多知识并更新您的技能,以编程/开发现代应用程序。