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