在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
在数据管理至关重要的当今数字时代,拥有高效的压缩和解压缩工具至关重要。 在 .NET 生态系统中脱颖而出的一款工具是SharpZipLib. 在本文中,我们将深入挖掘 SharpZipLib,探索其功能、应用以及如何将其集成到您的 .NET 项目中。
SharpZipLibC# Compression 是一个功能丰富、开源的 .NET 压缩库,完全用 C# 编写。 它全面支持各种压缩格式,包括 ZIP、GZip 和 Tar。 SharpZipLib 由一个热心的社区开发,提供广泛的功能,可高效地压缩和解压文件。
支持多种压缩格式: SharpZipLib 支持 ZIP、GZip 和 Tar 等流行的压缩格式,可满足不同的使用情况和要求。
基于流的操作: 该库基于流进行操作,使开发人员能够处理各种来源的数据,包括文件、内存流或网络流。 这种灵活性有利于无缝集成到应用程序的不同部分。
压缩级别: 开发人员可以根据自己的具体需求,微调压缩级别,在压缩率和处理速度之间取得平衡。
密码保护: SharpZipLib 允许创建受密码保护的 ZIP 压缩文件,通过使用指定密码对内容进行加密来确保数据安全。
文件压缩和归档: SharpZipLib 非常适合需要压缩和归档文件的应用程序,如备份工具、文件管理工具或数据导出功能。
网络服务和应用程序接口: 处理文件传输或数据交换的网络服务通常受益于压缩,以减少带宽使用。 SharpZipLib 可以无缝集成到这些服务中,从而高效地压缩传出数据或解压传入有效载荷。
桌面应用程序: 处理大型数据集或资源文件的桌面应用程序可以利用 SharpZipLib 压缩文件以进行存储或分发。 这对软件安装程序或数据同步工具尤其有用。
开源: 作为一个开源库,SharpZipLib 鼓励协作和社区贡献,以确保持续改进和适应不断变化的需求。
跨平台兼容性: SharpZipLib 由 C# 编写,以 .NET Framework 为目标,兼容 Windows、Linux 和 macOS 等各种平台,增强了其通用性。
轻便高效: SharpZipLib 的设计轻便高效,在提供高性能压缩和解压缩功能的同时最大限度地减少了资源消耗。
打开 Visual Studio,点击 "创建新项目 "选项。
根据您的要求选择合适的项目模板(例如,控制台应用程序、Windows 窗体应用程序).
指定项目名称和位置,然后单击 "下一步"。
将 SharpZipLib 集成到您的 .NET 项目中:
在您的Visual Studio IDEC# ConsoleApp,右键单击解决方案资源管理器中的项目,选择 "管理 NuGet 包..."
在 NuGet 包管理器窗口中,搜索 "SharpZipLib"。
从搜索结果中选择 "SharpZipLib",然后点击 "安装 "按钮。
下面是一个简化示例,演示如何使用 SharpZipLib 压缩和解压文件:
using ICSharpCode.SharpZipLib.Zip;
using System;
using System.IO;
namespace SharpZipLibExample
{
class Program
{
static void Main(string[] args)
{
string sourceDirectory = @"C:\SourceDirectory";
string zipFilePath = @"C:\OutputDirectory\compressed.zip";
// Compress files
CompressDirectory(sourceDirectory, zipFilePath);
Console.WriteLine("Files compressed successfully.");
string extractPath = @"C:\OutputDirectory\extracted";
// Decompress files
Decompress(zipFilePath, extractPath);
Console.WriteLine("Files decompressed successfully.");
}
static void CompressDirectory(string sourceDirectory, string zipFilePath)
{
using (var zipOutputStream = new ZipOutputStream(File.Create(zipFilePath)))
{
zipOutputStream.SetLevel(5); // Compression level (0-9)
// Recursively add files in the source directory to the ZIP file
AddDirectoryFilesToZip(sourceDirectory, zipOutputStream);
zipOutputStream.Finish();
zipOutputStream.Close();
}
}
static void AddDirectoryFilesToZip(string sourceDirectory, ZipOutputStream zipOutputStream)
{
string[] files = Directory.GetFiles(sourceDirectory);
foreach (string file in files)
{
var entry = new ZipEntry(Path.GetFileName(file));
zipOutputStream.PutNextEntry(entry);
using (var fileStream = File.OpenRead(file))
{
byte[] buffer = new byte[4096];
int sourceBytes;
while ((sourceBytes = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
zipOutputStream.Write(buffer, 0, sourceBytes);
}
}
}
string[] subdirectories = Directory.GetDirectories(sourceDirectory);
foreach (string subdirectory in subdirectories)
{
AddDirectoryFilesToZip(subdirectory, zipOutputStream);
}
}
static void Decompress(string zipFilePath, string extractPath)
{
using (var zipInputStream = new ZipInputStream(File.OpenRead(zipFilePath)))
{
ZipEntry entry;
while ((entry = zipInputStream.GetNextEntry()) != null)
{
string entryPath = Path.Combine(extractPath, entry.Name);
if (entry.IsFile)
{
string directoryName = Path.GetDirectoryName(entryPath);
if (!Directory.Exists(directoryName))
Directory.CreateDirectory(directoryName);
using (var fileStream = File.Create(entryPath))
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = zipInputStream.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, bytesRead);
}
}
}
else if (entry.IsDirectory)
{
Directory.CreateDirectory(entryPath);
}
}
}
}
}
}
using ICSharpCode.SharpZipLib.Zip;
using System;
using System.IO;
namespace SharpZipLibExample
{
class Program
{
static void Main(string[] args)
{
string sourceDirectory = @"C:\SourceDirectory";
string zipFilePath = @"C:\OutputDirectory\compressed.zip";
// Compress files
CompressDirectory(sourceDirectory, zipFilePath);
Console.WriteLine("Files compressed successfully.");
string extractPath = @"C:\OutputDirectory\extracted";
// Decompress files
Decompress(zipFilePath, extractPath);
Console.WriteLine("Files decompressed successfully.");
}
static void CompressDirectory(string sourceDirectory, string zipFilePath)
{
using (var zipOutputStream = new ZipOutputStream(File.Create(zipFilePath)))
{
zipOutputStream.SetLevel(5); // Compression level (0-9)
// Recursively add files in the source directory to the ZIP file
AddDirectoryFilesToZip(sourceDirectory, zipOutputStream);
zipOutputStream.Finish();
zipOutputStream.Close();
}
}
static void AddDirectoryFilesToZip(string sourceDirectory, ZipOutputStream zipOutputStream)
{
string[] files = Directory.GetFiles(sourceDirectory);
foreach (string file in files)
{
var entry = new ZipEntry(Path.GetFileName(file));
zipOutputStream.PutNextEntry(entry);
using (var fileStream = File.OpenRead(file))
{
byte[] buffer = new byte[4096];
int sourceBytes;
while ((sourceBytes = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
zipOutputStream.Write(buffer, 0, sourceBytes);
}
}
}
string[] subdirectories = Directory.GetDirectories(sourceDirectory);
foreach (string subdirectory in subdirectories)
{
AddDirectoryFilesToZip(subdirectory, zipOutputStream);
}
}
static void Decompress(string zipFilePath, string extractPath)
{
using (var zipInputStream = new ZipInputStream(File.OpenRead(zipFilePath)))
{
ZipEntry entry;
while ((entry = zipInputStream.GetNextEntry()) != null)
{
string entryPath = Path.Combine(extractPath, entry.Name);
if (entry.IsFile)
{
string directoryName = Path.GetDirectoryName(entryPath);
if (!Directory.Exists(directoryName))
Directory.CreateDirectory(directoryName);
using (var fileStream = File.Create(entryPath))
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = zipInputStream.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, bytesRead);
}
}
}
else if (entry.IsDirectory)
{
Directory.CreateDirectory(entryPath);
}
}
}
}
}
}
SharpZipLib 长期以来一直是 .NET 语言开发社区的主要工具,它提供了处理 ZIP、GZip、Tar 和 BZip2 等压缩文件的基本功能。然而,随着技术的发展和开发人员寻求更先进的解决方案,SharpZipLib 的某些局限性已变得显而易见。
复杂性:SharpZipLib 的 API 可能比较繁琐,需要开发人员编写冗长的代码才能完成创建或解压缩 ZIP 压缩包等简单任务。
缺乏现代功能:SharpZipLib 缺乏对现代 .NET 功能和平台的支持,因此不太适合现代开发环境。
有限的文档:虽然 SharpZipLib 已经存在了很长时间,但其文档往往稀少且过时,这使得开发人员在入门或排除故障时面临挑战。
IronZIP 文档由Iron Software 概述在 .NET 应用程序中,.NET ZIP 压缩包是管理 ZIP 存档的现代高效解决方案。 借助其直观的 API,开发人员可以轻松创建、读取和操作 ZIP 文件。 IronZIP 提供可定制压缩级别和密码保护等高级功能,确保灵活性和数据安全性。 IronZIP 兼容最新的 .NET 版本,并对性能进行了优化,可轻松高效地简化归档管理任务。
IronZIP 功能在《SharpZipLib》中,SharpZipLib 作为一个强大而现代的解决方案出现,解决了 SharpZipLib 的不足之处。 以下是 IronZIP 如何填补空白:
高级 API:IronZIP 提供直观、开发人员友好的 API,可简化归档管理任务。 有了 IronZIP,开发人员只需几行代码就能完成复杂的操作,从而减少开发时间和精力。
完全支持 .NET:IronZIP 完全支持最新的 .NET 版本,包括 .NET Core、.NET Standard 和 .NET Framework,确保与现代开发环境和平台兼容。
全面的文档:IronZIP 附带全面的文档和示例,使开发人员能够快速掌握其特性和功能。 大量的文档有助于简化学习曲线,便于快速集成到项目中。
压缩级别控制:IronZIP 为开发人员提供压缩级别控制,允许他们根据自己的要求调整压缩级别。 该功能可使开发人员在缩小文件大小和压缩速度之间取得平衡。
密码保护:IronZIP 支持 ZIP 存档密码保护,增强了敏感数据的安全性。 开发人员可以使用传统、AES128 和 AES256 密码轻松加密 ZIP 压缩文件,确保只有授权用户才能访问压缩文件的内容。
性能优化:IronZIP 针对性能进行了优化,与 SharpZipLib 相比,压缩和提取速度更快。 这种优化可确保开发人员在不影响性能的情况下高效处理大量数据。
探索IronZIP 文档了解有关 IronZIP 入门的更多信息。翻译IronZIP 代码示例帮助您轻松上手。
以下是将 XDocument 与 IronPDF 集成的步骤:
Install-Package IronZip
从 NuGet 浏览选项卡中选择 IronZIP,然后点击安装:
以下源代码展示了 IronZIP 如何高效地用 IronZIP 创建 ZIP 文件只需几行代码,即可轻松完成翻译。 在这里,您可以将多个文件添加到有密码保护的 ZIP 压缩包提供指定文件夹中的文件名。 在创建 IronZipArchive
对象时,您还可以指定压缩级别,以减少输出文件的空间大小。
using IronZip;
using IronZip.Enum;
class Program
{
static void Main()
{
// Create an empty ZIP with the highest compression
using (var archive = new IronZipArchive(9))
{
// Password protect the ZIP (Support AES128 & AES256)
archive.SetPassword("P@ssw0rd", EncryptionMethods.Traditional);
archive.AddArchiveEntry("./assets/file1.txt");
archive.AddArchiveEntry("./assets/file2.txt");
// Export the ZIP
archive.SaveAs("output.zip");
}
}
}
using IronZip;
using IronZip.Enum;
class Program
{
static void Main()
{
// Create an empty ZIP with the highest compression
using (var archive = new IronZipArchive(9))
{
// Password protect the ZIP (Support AES128 & AES256)
archive.SetPassword("P@ssw0rd", EncryptionMethods.Traditional);
archive.AddArchiveEntry("./assets/file1.txt");
archive.AddArchiveEntry("./assets/file2.txt");
// Export the ZIP
archive.SaveAs("output.zip");
}
}
}
SharpZipLib 概述作为 .NET 的强大压缩库,.NET.NET.NET.NET 压缩工具提供了一套丰富的特性和功能,可高效处理压缩文件。 无论是压缩存储数据、归档文件,还是优化网络服务中的带宽使用,SharpZipLib 都能提供必要的工具来简化压缩和解压缩操作。 凭借其开源性、跨平台兼容性和强大的功能,SharpZipLib 仍然是在 .NET 应用程序中寻求压缩任务可靠解决方案的开发人员的首选。
虽然 SharpZipLib 一直是 .NET 应用程序中处理压缩归档文件的可靠选择,但在当今的开发环境中,它的局限性已变得越来越明显。 探索 IronZIP APISharpZipLib》的出现填补了 SharpZipLib 的空白,提供了一个功能丰富的现代化替代工具,并将易用性、性能和兼容性放在首位。 有了 IronZIP,开发人员可以利用先进的功能和直观的 API,开启归档管理的新可能性,并简化开发工作流程。
IronZIP 提供了一个免费试用许可概述. 从以下网址下载资料库IronZIP 下载并试一试。