调用WinRAR解压文件
调用WinRAR解压文件
首先引用两个命名空间
using System.Diagnostics;
using Microsoft.Win32;
下面是调用WinRAR的函数,首先是在注册表里面去查找WinRAR的注册表键值,然后用WinRAR的命令去完成解压。
/// <summary>
/// 解压文件
/// </summary>
/// <param name=”fileDirectory”>解压的文件目录</param>
/// <param name=”filePath”>压缩包的文件路径</param>
private bool DecompressFile(string fileDirectory, string rarFilePath)
{
bool flag = false;
RegistryKey regkey = Registry.ClassesRoot.OpenSubKey(@”Applications\WinRAR.exe\shell\open\command”);
Object regvalue = regkey.GetValue(“”);
string rarExe = regvalue.ToString();
regkey.Close();
rarExe = rarExe.Substring(1, rarExe.Length – 7);
Directory.CreateDirectory(fileDirectory);
string cmd = string.Format(“x {0} {1} -y”, rarFilePath, fileDirectory);
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = rarExe;
startInfo.Arguments = cmd;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.WorkingDirectory = fileDirectory;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
if (process.HasExited)
{
flag = true;
}
process.Close();
return flag;
}