C#调用Winrar实现文件压缩
闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.12.12编写
一、 zip压缩控件存在问题
在C#中可以调用ICSharpCode.SharpZipLib.dll实现文件压缩,本人使用后发现存在如下问题
1、 文件压缩后为zip,文件要比rar大25%
2、 压缩过程没有进度条提示,大文件压缩时间要长一些
本人强烈建议压缩采用winrar,直接调用winrar
二、 WinRaR命令行的使用
使用如下:"C:/Program Files/WinRAR/WinRAR.exe" a -ep e:/temp/20071112.rar E:/temp/20071212/*.*
参数a 表示压缩,开关 -EP - 名称中排除路径, e:/temp/20071112.rar是压缩后文件名 E:/temp/20071212/*.*是压缩的文件路径
三、 实现方法
//exeFileName是exe文件, Arguments是参数
private static void RunEXE(string exeFileName, string arguments)
{
//声明一个程序信息类
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
//设置外部程序名
Info.FileName = exeFileName;
//设置外部程序的启动参数(命令行参数)
Info.Arguments = arguments;
//声明一个程序类
System.Diagnostics.Process Proc;
try
{
//启动外部程序
Proc = System.Diagnostics.Process.Start(Info);
}
catch
{
MessageBox.Show("系统找不到指定的程序文件。");
return;
}
//等待完成
Proc.WaitForExit();
}
四、 调用方法
RunEXE("C:/Program Files/WinRAR/WinRAR.exe", "a -ep e:/temp/20071112.rar E:/temp/20071212/*.*")