CString CMy7ZipDlg::BootOpenDialog() //返回选择的文件名称
{
CString strFile = _T("");
CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files All Files (*.*)|*.*||"), NULL);
if (dlgFile.DoModal())
{
strFile = dlgFile.GetPathName();
}
return strFile;
}
void CMy7ZipDlg::OnBnClickedCompress()//压缩文件
{
CString str7zPath;
str7zPath = _T("E:\\7-Zip\\7z.exe");
CString FileName = BootOpenDialog();
//CString FileName = _T("D:\\hello.txt");//要压缩文件的绝对路径
CString strSaveDir;
strSaveDir = FileName.Left(FileName.ReverseFind(_T('\\')));
CString strSaveName;
strSaveName = strSaveDir+_T("\\MemTest.7z");
CString strP;//压缩参数(-t为压缩类型)
strP.Format(_T("a -t7z %s %s"),strSaveName,FileName);
HINSTANCE hRet = ShellExecute(NULL, "open", str7zPath,strP,NULL,SW_HIDE);//SW_SHOW显示对话框
if (!hRet)
{
MessageBox(_T("压缩失败!"),_T("提示"),MB_ICONERROR);
}else
{
MessageBox(_T("压缩成功!"),_T("提示"),MB_ICONINFORMATION);
}
}
void CMy7ZipDlg::OnBnClickedExtract()//解压文件
{
CString str7zPath;
str7zPath = _T("E:\\7-Zip\\7z.exe");
CString FileName = BootOpenDialog();
//CString FileName = _T("D:\\DirRoot\\MemTest.7z");//要解压文件的绝对路径
CString strSaveDir;
strSaveDir = FileName.Left(FileName.ReverseFind(_T('\\')));
CString strP;//解压参数
strP.Format(_T("e %s -o%s -y"),FileName,strSaveDir);
HINSTANCE hRet =ShellExecute(NULL,"open",str7zPath,strP,NULL,SW_HIDE);//SW_SHOW显示对话框
if (!hRet)
{
MessageBox(_T("解压失败!"),_T("提示"),MB_ICONERROR);
}
else
{
MessageBox(_T("解压成功!"),_T("提示"),MB_ICONINFORMATION);
}
}