将服务器文件压缩并下载
protected void BtnDowload_Click(object sender, EventArgs e) { string path = Server.MapPath(ConfigurationManager.AppSettings["PersonRecordUrl"]); string resultPath = string.Empty; bool rel = false; TimeSpan nowTimeSpan = new TimeSpan(); resultPath = YaSuo(out rel, out nowTimeSpan, path); ResponseFile(resultPath); }
///<summary> ///压缩文件 ///</summary> ///<returns>返回压缩后的路径</returns> public string YaSuo(out bool bo, out TimeSpan times,string path) { string rarurlPath = string.Empty; bo = false; //压缩文件 string yasuoPathSave = path; System.Diagnostics.Process pro = new System.Diagnostics.Process(); pro.StartInfo.FileName = @"D:\YASUO\WinRAR\WinRAR.exe";//WinRAR所在路径 //pro.StartInfo.Arguments = "a " + yasuoPathSave + " " + yasuoPath + " -r ";//dir是你的目录名 pro.StartInfo.Arguments = string.Format("a {0} {1} -r", yasuoPathSave, yasuoPathSave);
pro.Start(); times = pro.TotalProcessorTime; bo = pro.WaitForExit(60000);//设定一分钟 if (!bo) pro.Kill(); pro.Close(); pro.Dispose(); rarurlPath = yasuoPathSave + ".rar"; 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=" + HttpUtility.UrlEncode("员工简历.rar")); Response.WriteFile(file.FullName); Response.End(); }