C# 压缩所有文件后 下载文件

  protected void Page_Load(object sender, EventArgs e)

        {



        }

        protected void btt_Click(object sender, EventArgs e)

        {

            string Path = "c:\\de";

            string resultPath = string.Empty;

            bool rel = false;

            TimeSpan nowTimeSpan = new TimeSpan();

            resultPath = YaSuo(out rel, out nowTimeSpan);

            ResponseFile(resultPath);

        }

        /// <summary>

        /// 压缩文件

        /// </summary>

        /// <returns>返回压缩后的路径</returns>

        public string YaSuo(out bool bo, out TimeSpan times)

        {

            string rarurlPath = string.Empty;

            bo = false;

            //压缩文件

            string yasuoPathSave = "c:\\de\\TZ.rar";

            string yasuoPath = "c:\\de\\temp";//压缩文件的文件夹

            System.Diagnostics.Process pro = new System.Diagnostics.Process();

            pro.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";//WinRAR所在路径

            //pro.StartInfo.Arguments = "a " + yasuoPathSave + " " + yasuoPath + " -r ";//dir是你的目录名 

            pro.StartInfo.Arguments = string.Format("a {0} {1} -r", yasuoPathSave, yasuoPath);

            pro.Start();

            times = pro.TotalProcessorTime;

            bo = pro.WaitForExit(60000);//设定一分钟

            if (!bo)

                pro.Kill();

            pro.Close();

            pro.Dispose();

            rarurlPath = yasuoPathSave;

            return rarurlPath;

        }

        protected void ResponseFile(string filename)

        {

            FileInfo file = new FileInfo(filename);//创建一个文件对象

            Response.Clear();//清除所有缓存区的内容

            Response.Charset = "GB2312";//定义输出字符集

            Response.ContentEncoding = Encoding.Default;//输出内容的编码为默认编码

            Response.AddHeader("Content-Disposition", "attachment;filename=" + file.Name);

            //添加头信息。为“文件下载/另存为”指定默认文件名称

            Response.AddHeader("Content-Length", file.Length.ToString());

            //添加头文件,指定文件的大小,让浏览器显示文件下载的速度 

            Response.WriteFile(file.FullName);// 把文件流发送到客户端

            Response.End();

        }

 

你可能感兴趣的:(下载文件)