using ICSharpCode.SharpZipLib.Zip; Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); //建立壓縮輸出流 ZipOutputStream zos = null; //建立內存流 MemoryStream ms = null; Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".zip"); ms = new MemoryStream(); //關聯壓縮流和內存流 zos = new ZipOutputStream(ms); string strEntryName = fileName + ".pdf"; //建立壓縮的對象實體放入壓縮流,可循環建立 foreach (string file in filenames) { ZipEntry entry = new ZipEntry(Path.GetFileName(file)); entry.DateTime = DateTime.Now; zos.PutNextEntry(entry); using (FileStream fs = File.OpenRead(file)) { int sourceBytes; do { sourceBytes = fs.Read(buffer, 0, buffer.Length); zos.Write(buffer, 0, sourceBytes); } while (sourceBytes > 0); } } zos.Finish(); zos.Close(); Response.BinaryWrite(ms.ToArray()); Response.End();