VC++ 调用7z.exe 命令行参数实现简单的压缩、解压


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);
}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值