下面我将详细介绍关于“asp.net SharpZipLib的压缩与解压问题”的完整攻略。
什么是 SharpZipLib
SharpZipLib 是 .NET 平台下使用的一个流行的压缩库,支持 Gzip、Deflate、BZip2 等多种压缩格式,并且它是在 zlib 许可证下发布的,因此免费且开源。
SharpZipLib 安装
在 Visual Studio 中安装 SharpZipLib 可以使用 NuGet 包管理器,在项目右键菜单中选择“管理 NuGet 包”,搜索 SharpZipLib,点击安装即可。
SharpZipLib 压缩文件
以下示例是使用 SharpZipLib 压缩一个文件:
using ICSharpCode.SharpZipLib.Zip;
using System.IO;
string inputFile = @"C:\temp\input.txt";
string outputFile = @"C:\temp\output.zip";
using (FileStream inputStream = new FileStream(inputFile, FileMode.Open, FileAccess.Read))
{
using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(outputFile)))
{
ZipEntry zipEntry = new ZipEntry(Path.GetFileName(inputFile));
zipStream.PutNextEntry(zipEntry);
inputStream.CopyTo(zipStream);
zipStream.CloseEntry();
}
}
SharpZipLib 解压文件
以下示例是使用 SharpZipLib 解压一个 Zip 压缩文件:
using ICSharpCode.SharpZipLib.Zip;
using System.IO;
string inputFile = @"C:\temp\input.zip";
string outputFolder = @"C:\temp\";
using (ZipInputStream zipStream = new ZipInputStream(File.OpenRead(inputFile)))
{
ZipEntry entry;
while ((entry = zipStream.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(entry.Name);
string fileName = Path.GetFileName(entry.Name);
Directory.CreateDirectory(outputFolder + directoryName);
using (FileStream outputStream = new FileStream(outputFolder + entry.Name, FileMode.Create, FileAccess.Write))
{
byte[] buffer = new byte[2048];
int count;
while ((count = zipStream.Read(buffer, 0, buffer.Length)) > 0)
{
outputStream.Write(buffer, 0, count);
}
outputStream.Close();
}
}
}
以上就是使用 SharpZipLib 进行文件压缩和解压的完整攻略,如果您还有其他问题或疑问,请随时与我联系。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net SharpZipLib的压缩与解压问题 - Python技术站