c#如何把文件夹压缩打包然后下载

    
public partial class _Default2 : System.Web.UI.Page{
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Button1_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();
        }


    }


 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值