zoukankan      html  css  js  c++  java
  • 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();
            }


        }

  • 相关阅读:
    HDU 5486 Difference of Clustering 图论
    HDU 5481 Desiderium 动态规划
    hdu 5480 Conturbatio 线段树 单点更新,区间查询最小值
    HDU 5478 Can you find it 随机化 数学
    HDU 5477 A Sweet Journey 水题
    HDU 5476 Explore Track of Point 数学平几
    HDU 5475 An easy problem 线段树
    ZOJ 3829 Known Notation 贪心
    ZOJ 3827 Information Entropy 水题
    zoj 3823 Excavator Contest 构造
  • 原文地址:https://www.cnblogs.com/jasonwb/p/1873231.html
Copyright © 2011-2022 走看看