利用7z.exe压缩和解压缩

本文提供了一段C++代码示例,展示了如何利用7-Zip命令行工具实现文件的压缩与解压缩功能。代码通过调用ShellExecute函数执行7-Zip的命令行操作,并使用宽字符字符串来指定文件路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


#include "stdafx.h"
#include <Windows.h>
#include <locale.h>
#include <shellapi.h>
#pragma comment(lib, "shell32.lib")


//pFilePath 需要压缩的文件路径
//pCompressPath 压缩后的文件路径
bool Compress(PWCHAR pFilePath, PWCHAR pCompressPath)
{
WCHAR sz7zPath[256] = {0};
wcscpy(sz7zPath, L"C:\\Program Files (x86)\\7-Zip\\7z.exe");

WCHAR szParam[1024] = {0};
wsprintf(szParam, L"a -t7z %s %s", pCompressPath, pFilePath);


HINSTANCE hRet = ShellExecute(NULL, L"open", sz7zPath, szParam, NULL, SW_HIDE);//SW_SHOW显示对话框
if (!hRet)
{  
wprintf(L"压缩失败!\n");
return false;
}

wprintf(L"压缩成功!\n");
return true;
}


//pFilePath 需要解压缩的文件路径
//pUnCompressPath 解压缩之后的文件路径
bool UnCompress(PWCHAR pFilePath, PWCHAR pUnCompressPath)
{
WCHAR sz7zPath[256] = {0};
wcscpy(sz7zPath, L"C:\\Program Files (x86)\\7-Zip\\7z.exe");


WCHAR szParam[1024] = {0};
wsprintf(szParam, L"e %s -o%s -y", pFilePath, pUnCompressPath);


HINSTANCE hRet =ShellExecute(NULL,L"open",sz7zPath,szParam,NULL,SW_HIDE);//SW_SHOW显示对话框
if (!hRet)  
{  
wprintf(L"解压失败!\n");
return false;
}


wprintf(L"解压成功!\n");
return true;
}


int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"chs");


WCHAR szFilePath[256] = {0};
wcscpy(szFilePath, L"C:\\1");


WCHAR szCompressPath[256] = {0};
wcscpy(szCompressPath, L"C:\\1.7z");


//Compress(szFilePath,szCompressPath);
UnCompress(szCompressPath, szFilePath);
return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值