C#调用Winrar实现文件压缩

C#调用Winrar实现文件压缩

 闫磊   Email:[email protected],[email protected] 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/*.*")

 

 

 

 

你可能感兴趣的:(C#)