动态生成三个pub1.txt  ,pub2.txt,pub3.txt   并下载。。现在问题是。。一次只能输出一个文件。三个文件不能同时输出。我现在想将这三个文件压缩到一个rar文件中。然后在一次性输出。。请高手指点。。谢谢。。
            Response.Clear();
            Response.Buffer = false;
            Response.ContentType = "application/octet-stream";
            Response.AppendHeader("content-disposition", "attachment;filename= Pub1.txt");
            string str = "<123456>";
            Response.Write(str );
            Response.Flush();
            Response.End();

解决方案 »

  1.   

    http://www.sharecenter.net/thread-254677-1-1.html
      

  2.   


    先生成一个文件夹把
    三个文件放在这个文件夹中,然后用winrar打包,尔后给出下载 tzExport.ExecutePatchExport();
                        if (File.Exists(Path + "\\TZ.rar"))
                        {
                            File.Delete(Path + "\\TZ.rar");
                        }                    System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(@"WinRAR.exe", "a    -ep \"" + Path + "\\TZ.rar\"    \"" + Path + "\\temp\\\"");
                            info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                        System.Diagnostics.Process Proc = System.Diagnostics.Process.Start(info);//生成压缩文件
                        Proc.WaitForExit(5000);
                        if (Proc.HasExited == false)
                        {                        Proc.Kill();
                        }
                        //(tc.FindControl("lblKBSuccess") as Label) .Text = "生成成功";
                        //(tc.FindControl("HyperLink3") as HyperLink).Text = "点击此处下载";
                        //(tc.FindControl("HyperLink3") as HyperLink).NavigateUrl = "~/Data/TZ.rar";
                        HyperLink HyperLink3 = new HyperLink();
                        HyperLink3.NavigateUrl = "~/Data/TZ.rar";
                        HyperLink3.Text = "点击此处下载";
                        tc.Controls.Add(HyperLink3);
      

  3.   

    楼上如果电脑没安装winrar怎么办呢虚拟主机很有可能没有winrar
      

  4.   

    用SharpZipLib吧。完全用C#实现的zip压缩角压缩库。
      

  5.   

    我也想到用这个了SharpZipLib,但是不知道如何将这三个文件加入到里边因为他们只是数据流
      

  6.   

    翻箱倒柜,把我N年前写的sharpziplib的demo找出来了,这是其中的一段,希望对楼主有帮助。/// <summary>
    /// 压缩文件
    /// </summary>
    /// <param name="fileNames"></param>
    /// <param name="outputZipFilePath"></param>
    public static void ZipFile(string[] fileNames, string outputZipFilePath)
    {
        using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(outputZipFilePath)))
        {
            zipStream.SetLevel(6);
            byte[] buffer = new byte[4096];        foreach (string fileName in fileNames)
            {
                ZipEntry entry = new ZipEntry(Path.GetFileName(fileName));
                zipStream.PutNextEntry(entry);            //------ 这里就是数据流啊~_~
                using (FileStream fs = File.OpenRead(fileName))
                {
                    int sourceBytes;
                    do
                    {
                        sourceBytes = fs.Read(buffer, 0, buffer.Length);
                        zipStream.Write(buffer, 0, sourceBytes);
                    } while (sourceBytes > 0);
                }
            }        zipStream.Flush();
            zipStream.Close();
        }
    }