1、C#在线压缩与解压using System.IO;using Microsoft.Win32;using System.Diagnostics;/* 程序用途:实现文件文件夹压缩解压功能函数程序备注:* 服务器端 WinRAR支持* 路径简述必须绝对路径*/2.主要代码之压缩/ / 压缩文件/ / 需要压缩的文件夹或者单个文件/ 生成压缩文件的文件名/ 生成压缩文件保存路径/ protected bool RAR(string DFilePath, string DRARName,string DRARPath)String the_rar;RegistryKey the_Reg;Object
2、 the_Obj;String the_Info;ProcessStartInfo the_StartInfo;Process the_Process;trythe_Reg = Registry.ClassesRoot.OpenSubKey(“ApplicationsWinRAR.exeShellOpenCommand“);the_Obj = the_Reg.GetValue(“);the_rar = the_Obj.ToString();the_Reg.Close();the_rar = the_rar.Substring(1, the_rar.Length - 7);the_Info =
3、“ a “ + “ “ + DRARName + “ “ + DFilePath; /命令 + 压缩后文件名 + 被压缩的文件或者路径the_StartInfo = new ProcessStartInfo();the_StartInfo.FileName = the_rar;the_StartInfo.Arguments = the_Info;the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;the_StartInfo.WorkingDirectory = DRARPath ; /RaR文件的存放目录。the_Process = ne
4、w Process();the_Process.StartInfo = the_StartInfo;the_Process.Start();return true;catch (Exception ex)return false;3.主要代码之解压/ / 解压缩到指定文件夹 / / 压缩文件存在的目录 / 压缩文件名称 / 解压到文件夹/ protected bool UnRAR(string RARFilePath,string RARFileName,string UnRARFilePath)/解压缩String the_rar;RegistryKey the_Reg;Object the
5、_Obj;String the_Info;ProcessStartInfo the_StartInfo;Process the_Process;trythe_Reg = Registry.ClassesRoot.OpenSubKey(“ApplicationsWinRar.exeShellOpenCommand“);the_Obj = the_Reg.GetValue(“);the_rar = the_Obj.ToString();the_Reg.Close();the_rar = the_rar.Substring(1, the_rar.Length - 7);the_Info = “ X
6、“ + “ “ + RARFilePath + RARFileName + “ “ + UnRARFilePath;the_StartInfo = new ProcessStartInfo();the_StartInfo.FileName = the_rar;the_StartInfo.Arguments = the_Info;the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;the_Process = new Process();the_Process.StartInfo = the_StartInfo;the_Process.Sta
7、rt();return true;catch (Exception ex)return false;3.示例string oFilePath = “C:1“;string oRARFileName = “1.rar“;string oToFilePath = “C:2“;/if (RAR(oFilePath, oRARFileName, oToFilePath)if (UnRAR(oFilePath, oRARFileName, oToFilePath)Response.Write(“OK“);elseResponse.Write(“No“); 1.引用using System.IO;usin
8、g Microsoft.Win32;using System.Diagnostics;/* 程序用途:实现文件文件夹压缩解压功能函数程序备注:* 服务器端 WinRAR支持* 路径简述必须绝对路径*/2.主要代码之压缩/ / 压缩文件/ / 需要压缩的文件夹或者单个文件/ 生成压缩文件的文件名/ 生成压缩文件保存路径/ protected bool RAR(string DFilePath, string DRARName,string DRARPath)String the_rar;RegistryKey the_Reg;Object the_Obj;String the_Info;Proc
9、essStartInfo the_StartInfo;Process the_Process;trythe_Reg = Registry.ClassesRoot.OpenSubKey(“ApplicationsWinRAR.exeShellOpenCommand“);the_Obj = the_Reg.GetValue(“);the_rar = the_Obj.ToString();the_Reg.Close();the_rar = the_rar.Substring(1, the_rar.Length - 7);the_Info = “ a “ + “ “ + DRARName + “ “
10、+ DFilePath; /命令 + 压缩后文件名 + 被压缩的文件或者路径the_StartInfo = new ProcessStartInfo();the_StartInfo.FileName = the_rar;the_StartInfo.Arguments = the_Info;the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;the_StartInfo.WorkingDirectory = DRARPath ; /RaR文件的存放目录。the_Process = new Process();the_Process.Start
11、Info = the_StartInfo;the_Process.Start();return true;catch (Exception ex)return false;3.主要代码之解压/ / 解压缩到指定文件夹 / / 压缩文件存在的目录 / 压缩文件名称 / 解压到文件夹/ protected bool UnRAR(string RARFilePath,string RARFileName,string UnRARFilePath)/解压缩String the_rar;RegistryKey the_Reg;Object the_Obj;String the_Info;ProcessS
12、tartInfo the_StartInfo;Process the_Process;trythe_Reg = Registry.ClassesRoot.OpenSubKey(“ApplicationsWinRar.exeShellOpenCommand“);the_Obj = the_Reg.GetValue(“);the_rar = the_Obj.ToString();the_Reg.Close();the_rar = the_rar.Substring(1, the_rar.Length - 7);the_Info = “ X “ + “ “ + RARFilePath + RARFi
13、leName + “ “ + UnRARFilePath;the_StartInfo = new ProcessStartInfo();the_StartInfo.FileName = the_rar;the_StartInfo.Arguments = the_Info;the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;the_Process = new Process();the_Process.StartInfo = the_StartInfo;the_Process.Start();return true;catch (Exception ex)return false;3.示例string oFilePath = “C:1“;string oRARFileName = “1.rar“;string oToFilePath = “C:2“;/if (RAR(oFilePath, oRARFileName, oToFilePath)if (UnRAR(oFilePath, oRARFileName, oToFilePath)Response.Write(“OK“);elseResponse.Write(“No“);