在C#中在服务器上打包压缩文件,并下载
来源:互联网 发布:演示demo制作软件 编辑:程序博客网 时间:2024/05/19 00:13
突然项目中需要用到这个功能,整了好长时间终于出来了,希望能够对像我一样的小白有所帮助,里面有的代码是可以变动的,可以变通
#region 打包下载数据
/// <summary>
/// 打包下载rar文件
/// </summary>
public void DownLoad()
{
try
{
BPM_V4_STAEntities ef = new BPM_V4_STAEntities();
string path = ef.Xm_System_Master.Where((c) => c.id == "160").Select(c => new { value = c.value }).ToString();
if (File.Exists(path + "Data.rar"))
{
File.Delete(path + "Data.rar");
}
RAR(path, path, "Data.rar");
FileInfo DownloadFile = new FileInfo(path + "\\Data.rar");
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = false;
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8) + ";charset=GB2312");
HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
HttpContext.Current.Response.Flush();
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 利用 WinRAR 进行压缩
/// </summary>
/// <param name="fileName">将要被压缩的文件夹(绝对路径)</param>
/// <param name="rarPath">压缩后的 .rar 的存放目录(绝对路径)</param>
/// <param name="rarName">压缩文件的名称(包括后缀)</param>
/// <returns>true 或 false。压缩成功返回 true,反之,false。</returns>
public bool RAR(string filePath, string rarPath, string rarName)
{
bool flag = false;
string rarexe; //WinRAR.exe 的完整路径
RegistryKey regkey; //注册表键
Object regvalue; //键值
string cmd; //WinRAR 命令参数
ProcessStartInfo startinfo;
Process process;
try
{
regkey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WINRAR.exe");
regvalue = regkey.GetValue(""); // 键值为 "d:\Program Files\WinRAR\WinRAR.exe" "%1"
rarexe = regvalue.ToString();
regkey.Close();
// rarexe = rarexe.Substring(1, rarexe.Length - 7); // d:\Program Files\WinRAR\WinRAR.exe
Directory.CreateDirectory(filePath);
//压缩命令,相当于在要压缩的文件夹(path)上点右键->WinRAR->添加到压缩文件->输入压缩文件名(rarName)
cmd = string.Format("a {0} {1} -r",
rarName,
filePath);
startinfo = new ProcessStartInfo();
startinfo.FileName = rarexe;
startinfo.UseShellExecute = false;
startinfo.Arguments = cmd; //设置命令参数
startinfo.WindowStyle = ProcessWindowStyle.Hidden; //隐藏 WinRAR 窗口
startinfo.WorkingDirectory = rarPath;
process = new Process();
process.StartInfo = startinfo;
process.Start();
process.WaitForExit(); //无限期等待进程 winrar.exe 退出
if (process.HasExited)
{
flag = true;
}
process.Close();
}
catch (Exception e)
{
throw e;
}
return flag;
}
#endregion
0 0
- 在C#中在服务器上打包压缩文件,并下载
- C#实现从FTP服务器下载压缩文件并解压.
- 在thinkphp中批量生成Word并压缩打包下载
- 在Eclipse中下载并打开SVN上的项目
- JAVA打包xml成zip保存在服务器任意位置,并能在页面进行点击下载
- securecrt中文件打包成压缩文件并下载命令
- C#在服务器上调试程序的方法(生成日志文件在服务器中)
- 在Java中解读压缩文件
- 在服务器上搭建svn并在本地eclipse中使用
- C#网站开发----在服务器上生成临时文件,下载到客户端,然后删除临时文件
- C++打包DLL在C#中调用
- ZIP压缩文件,并下载
- 使用脚本在solaris上打包并发布到WAS
- Android上打包jar并在真机上运行
- Eclipse中的WEB项目打包部署在服务器上
- 关于IOS企业打包,发布在服务器上的若干问题
- spring boot 打包成jar 在服务器上运行
- 在服务器上使用grandle打包android源码
- Http 的状态码
- H.264 Profile、Level、Encoder三张简图
- Windows Server 2008 下Oracle 11g 定时备份任务
- C++GUIQT编程
- LINQ TO SQL Null 查询 自己留用
- 在C#中在服务器上打包压缩文件,并下载
- IOS NSConditionLock 条件锁 NSCondition 断言
- Android MediaPlayer 代理 完成缓存、预缓存
- Linux 下timer的使用方法
- ORACLE的高级复制资料
- 网络
- ListView中CovertView复用详解
- 201312文摘
- struts2 获得request,response,session