asp.net实现文件夹及文件压缩,并实现下载
步骤1)先引用 ICSharpCode SharpZipLib dll;2) cs文件引入usingSystem IO;usingSystem Text;usingICSharpCode SharpZipLib Checksums;usingICSharpCode SharpZipLib Zip;usingICSharpCode SharpZipLib GZip;
步骤
1)先引用 ICSharpCode.SharpZipLib.dll;
2).cs文件引入
- using System.IO;
- using System.Text;
- using ICSharpCode.SharpZipLib.Checksums;
- using ICSharpCode.SharpZipLib.Zip;
- using ICSharpCode.SharpZipLib.GZip;
3)代码
#region 下列代码为压缩并下载代码
- ZipOutputStream zos = null;
- String strBaseDir = "";
- void dlZipDir(string strPath, string strFileName)
- {
- MemoryStream ms = null;
- Response.ContentType = "application/octet-stream";
- strFileName = HttpUtility.UrlEncode(strFileName).Replace('+', ' ');
- Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName + ".zip");
- ms = new MemoryStream();
- zos = new ZipOutputStream(ms);
- strBaseDir = strPath + "\\";
- addZipEntry(strBaseDir);
- zos.Finish();
- zos.Close();
- Response.Clear();
- Response.BinaryWrite(ms.ToArray());
- Response.End();
- }
- void addZipEntry(string PathStr)
- {
- DirectoryInfo di = new DirectoryInfo(PathStr);
- foreach (DirectoryInfo item in di.GetDirectories())
- {
- addZipEntry(item.FullName);
- }
- foreach (FileInfo item in di.GetFiles())
- {
- FileStream fs = File.OpenRead(item.FullName);
- byte[] buffer = new byte[fs.Length];
- fs.Read(buffer, 0, buffer.Length);
- string strEntryName = item.FullName.Replace(strBaseDir, "");
- ZipEntry entry = new ZipEntry(strEntryName);
- zos.PutNextEntry(entry);
- zos.Write(buffer, 0, buffer.Length);
- fs.Close();
- }
- }
- PRotected void Button2_Click(object sender, EventArgs e)
- {
- string userPath ="D:\\华海实训(qqview.com)各级账号和密码";
- dlZipDir(userPath, "华海实训(qqview.com)服务账号");
- }
- #endregion
上一篇:第一页