隐藏

C#调用rar.exe解压一个rar文件

发布:2022/9/21 14:45:54作者:管理员 来源:本站 浏览次数:865

//取得系统临时目录

string sysTempDir = Path.GetTempPath();


//要解压的文件路径,请自行设置

string rarFilePath = @"d:\test.rar";


//确定要解压到的目录,是系统临时文件夹下,与原压缩文件同名的目录里

string unrarDestPath = Path.Combine(sysTempDir,

   Path.GetFileNameWithoutExtension(rarFilePath));


//组合出需要shell的完整格式

string shellArguments = string.Format("x -o+ \"{0}\" \"{1}\\\"",

   rarFilePath, unrarDestPath);


//用Process调用

using (Process unrar = new Process())

{

   unrar.StartInfo.FileName = "rar.exe";

   unrar.StartInfo.Arguments = shellArguments;

   //隐藏rar本身的窗口

   unrar.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

   unrar.Start();

   //等待解压完成

   unrar.WaitForExit();

   unrar.Close();

}


//统计解压后的目录和文件数

DirectoryInfo di = new DirectoryInfo(unrarDestPath);


MessageBox.Show(string.Format("解压完成,共解压出:{0}个目录,{1}个文件",

   di.GetDirectories().Length, di.GetFiles().Length));