利用WinExec,CreateProcess,ShellExecute都可以调用WinRAR.exe来进行文件的压缩与解压。
首先要从注册表获取WinRAR的安装路径,参考代码
CString GetWinRARPath()
{
HKEY hKEY;
LPCTSTR Rgspath = _T("Software\\WinRAR");
LONG ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, Rgspath, 0, KEY_READ, &hKEY);
if(ret != ERROR_SUCCESS)
{
MessageBox(NULL, _T("获取WinRAR安装路径失败!"), _T("出错啦~!"), MB_OK);
RegCloseKey(hKEY);
return _T("");
}
// 读取键值内容
DWORD type = REG_SZ;
BYTE PathInfo[MAX_PATH];
DWORD dwInfoSize = MAX_PATH;
ret = RegQueryValueEx(hKEY, _T("exe32"), NULL, &type, PathInfo, &dwInfoSize);
if(ret != ERROR_SUCCESS) // 这一句有时成功,有时失败
{
MessageBox(NULL, _T("没有安装WinRar解压缩软件,请先安装WinRar解压缩软件"), _T("出错啦~!"), MB_OK);
RegCloseKey(hKEY);
return _T("");
}
CString Path = (wchar_t*)PathInfo;
return Path;
}
获得路径后,就可以调用WinRAR.exe了,需要设置相应的压缩解压参数。
用法: rar <命令> - <开关1> - <开关 N> <压缩文件> <文件...> <@列表文件...> <解压路径\>
<命令>
a