asp.net用代码压缩服务器上文件夹或文件_[Asp.Net教程] 实现过程
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:\\华海实训(hohisoft.com)各级账号和密码"; dlZipDir(userPath, "华海实训(hohisoft.com)服务账号"); }
#endregion
|