技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

简单易用!asp.net用DotNetZip压缩文件,Ionic.Zip.dll下载

作者:admin    时间:2022-8-24 12:45:42    浏览:

在本文中,我们将通过示例和示例代码探讨如何使用 C# 在 ASP.NET 中创建 Zip 文件。

在本文示例中,会使用到Ionic.Zip.dll ,本文将提供该文件的下载,用户下载后放到网站的bin目录下即可直接使用。

DotNetZip 介绍

首先说明的是,DotNetZip 是一个小型、易于使用的类库,用于处理 .zip 文件。它可以启用以 VB.NET、C# 或任何 .NET 语言编写的 .NET 应用程序,以轻松创建、读取和更新 zip 文件。使用 DotNetZip 可以轻松进行 Zip 压缩。

DotNetZip 打包为单个 DLL,即为 Ionic.Zip.dll,大小约为 400k。它没有第三方依赖项。它是中等信任,因此可以在大多数主机上使用。仅通过引用 DLL 来获取压缩。

适用条件

Ionic.Zip.dll文件适用.NET 2.0以上版本。

命名空间

我们将需要使用以下命名空间。

using System.IO;
using Ionic.Zip;

多个实例(C#)

压缩单个文件

string filePath = Server.MapPath("Report.doc");//文件所在位置
using (Ionic.Zip.ZipFile zf = new Ionic.Zip.ZipFile())
{
//zf.AddFile(filePath, "files");  //"files"是压缩文件存放的文件夹名称,会自动生成
zf.AddFile(filePath, "");
zf.Save(Server.MapPath("Report.rar"));//文件保存的地址
}

压缩多个文件

using (ZipFile zip = new ZipFile("MyZipFile.zip")
{
  zip.AddFile("c:\\images\\personal\\7440-N49th.png");
  zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf");
  zip.AddFile("ReadMe.txt");
  zip.Save();
}

压缩并下载

string filePath = Server.MapPath("Report.doc");//文件所在位置
var fs = Response.OutputStream;
using (Ionic.Zip.ZipFile zf = new Ionic.Zip.ZipFile())
{
//zf.AddFile(filePath, "files");  //"files"是压缩文件存放的文件夹名称,会自动生成
zf.AddFile(filePath, "");  // 第二个参数是文件夹名称,留空表示当前位置
zf.Save(fs);//保存到输出流
}
string fileName = "Report.rar"; //下载显示的文件名字
        
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.Flush();
Response.End();

压缩文件夹,适合压缩多个文件

string pathname = Server.MapPath("~/files/");
string[] filename = Directory.GetFiles(pathname);
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
  zip.AddFiles(filename, "files");
  zip.Save(Server.MapPath("~/files.rar"));
}

解压

string zipToUnpack = Server.MapPath("~/files.zip");  // 不能解压rar文件
string unpackDirectory = Server.MapPath("~/files/");
using (ZipFile zip1 = ZipFile.Read(zipToUnpack))
{
foreach (ZipEntry ex in zip1)
{
ex.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently);
}
}

遗憾的是,该DLL不能解压rar文件,它只能解压zip文件,不过它却能把文件压缩为rar文件。

总结

本文介绍了asp.net如何使用DotNetZip Ionic.Zip.dll压缩文件,该方法代码简单易用,推荐使用。

如果你不想引用第三方类库来压缩文件,那么如果你使用的是.NET4.5版本以上,你可以用ZipArchive、ZipFile等类来实现压缩和解压。

Ionic.Zip.dll 文件下载

Ionic.Zip.dll.rar

x
  • 站长推荐
/* 左侧显示文章内容目录 */