【MFC】VC调用WinRar解压文件(如:.gz)

C++调用WinRAR压缩解压文件 1、压缩: CString aracmd = _T("a ")+strRarFile + _T(" ") +strMdbFile; //strRarFile为压缩后rar文件的全路径,包括压缩后rar文件的文件名(除_、字母、数字外的其他字符不支持),但不要包括后缀名.rar。strMdbFile为带压缩的文件名。 //此命令中只有a和strRarFile、strRarFile和str 阅读详情
void UnpackFile(const CString & strFilePath)
{
    CString winRarInstallPath = "C:\\Program Files\\WinRAR\\WinRAR.exe"; 
    CString strDestPath; //目标解压位置
    int pos  = strFilePath.ReverseFind('.');
    strDestPath = strFilePath.Left(pos);
    //删除同名文件
    if(::PathFileExists(strDestPath));
    {
      DeleteFile(strDestPath);
    }
    // 清空文件
    DeleteDirectories(strDestPath); //上篇文章中的函数
    
    if (FALSE == ::CreateDirectory(strDestPath,NULL))
    {
        AfxMessageBox("创建解压路径失败");
        return;
    }
    
    //x解压  -ibck后台执行 -o+如存在,则覆盖 -inul不弹出错误提示  
    //使用 -ibck,缩小到了系统托盘区域
    CString strCmd= "\"" + winRarInstallPath + "\" x -ibck -o+ -inul \"" + strFilePath + "\" \"" + strDestPath+"\""; 
    STARTUPINFO si={sizeof(si)};
    PROCESS_INFORMATION pi; 

    BOOL bRet=CreateProcess(NULL,strCmd.GetBuffer(MAX_PATH),NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);  
    DWORD dwExit=0;  
    if(bRet)  
    {  
        //这个地方将导致该函数为阻塞状态  
        WaitForSingleObject(pi.hProcess,INFINITE);        
        ::GetExitCodeProcess(pi.hProcess,&dwExit);  
        CloseHandle(pi.hThread);  
        CloseHandle(pi.hProcess);  
    }    
    return;
}


需注意问题:

1.网上有说目标文件路径需要加一个“\“,可能调系统的函数的话是对的,但如果你是拷贝的winrar.exe的话,就不能加"\",不然是无法解压的。

2.调用winrar.exe 而不是rar.exe的原因,这样winrar可以托盘到通知区域,而rar.exe会出现黑窗口,用户体验不好

MFC的极其简单的压缩和解压代码 就几个文件,带一个简单的demo实现文件压缩解压,比zip好用 立即下载

相关推荐

数据结构实践课-哈夫曼树-文件的压缩解压(MFC)

数据结构实践课-哈夫曼树-文件的压缩解压(MFC)

MFC循环调用winrar命令压缩运行多个后台进程导致内存和CPU占用过高而崩溃

要实现的功能: 创建文件夹,然后往该文件夹中复制数据,复制完成后压缩此文件夹。 上述过程是一直在循环进行,不断生成新的文件夹,然后压缩 遇到的问题 strShell.Format(_T("C:\\Program Files\\WinRAR\\RAR.exe A -ep -df -ibck \"%s\" \"%s\""),strDes,strSrc); ShellExecute(NULL, _T("...

snipertly的博客 656

MFC Zlib 解压和压缩简单文件夹 亲测可用 简单类

MFC Zlib 解压和压缩简单文件夹和文件 亲测可用 简单类封装类!

MFC解压zip类使用说明

MFC解压zip类使用说明 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了用于MFC(Microsoft Foundation Class)环境下解压zip格式文件的类。资源文件包含两个主要的类:zip和unzip。这两个类可以方便地在Visual Studio 2013环境下编译和运行。 文件说明 MFC解压zip类.rar:包含了用于解压zip文件的MF...

gitblog_06732的博客 715

C++编写的压缩解压缩程序(调用WinRAR的命令行程序)

有很多压缩解压缩的算法,网上也有很多程序,但大多不支持压缩多个文件,本程序调用WinRAR安装后的Rar.exe程序,没什么技术含量,可作为系统调用的练习吧。(内附使用说明)

【人工智能AI】是什么?

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟延伸和扩展人的智能的理论方法技术及应用系统的一门新的技术科学。(百度百科)人工智能的基本原理:机器从「特定的」大量数据中总结规律,形成某些「特定的知识」,然后将这种「知识」应用到现实场景中去解决实际问题。在这个基本原理的基础上,有3个特征:1、人工智能本质上是一种工具2、人工智能技能只能解决特定的问题,而不是什么都能做3、人工智能属于归纳逻辑,可以告诉你是什么,但是不能告诉你为什么。

KJCZ.AK的博客 2万+

MFC下实现压缩和解压缩功能

解压zip库(解决文件名中文乱码问题).zip,将zip.h,zip.cpp,unzip.h,unzip.cpp添加到你的项目下,下面是一个封装了简单压缩和解压的方法,注释已经很详细了,不再赘述。 递归压缩文件夹和文件 /*! * @brief 将一个文件夹下的文件添加到压缩文件 * * @param const HZIP& zip 压缩操作对象 * @param const CString& zipPath 被压缩的文件或文件夹路径 * @param...

qq_28742901的博客 3410

ArcGIS基础:CAD数据转换为GIS数据(符号化显示、数据转换、线转面、空间连接)

1、符号化显示: CAD数据加载进来有很多列表,包含了点【point】、线【polyline】、面【polygon】、标注数据【Annotation】等数据,本次实验我们需要用到的是面数据,也就是.dwgPolygong格式的数据。如下图所示: 把数据加载进来,然后在2处打开属性表,查看CAD数据的属性表,打开后可以发现【layer】图层表示就是地块的用地性质,它就是符号化显示的依据。 我们在数据上右键【属性】,打开图层属性,找到【符号系统】,选择类别中的【唯一值】,然后在【值字段】下拉选择【layer】,

yuanYW7556的博客 2万+

从MFC资源文件获取压缩文件内存地址然后直接解压内存中资源文件到物理内存

第一步: 从MFC资源文件中获取资源文件内存中地址: HINSTANCEhInstance= GetModuleHandle(0); HRSRChrsrc=FindResource(hInstance,MAKEINTRESOURCE(IDR_ZIP1), L"ZIP"); HANDLEhglob=LoadResource(hInstance,hrsrc); void*zipbu

chenjian60665的博客 1654

LLaVA-1.5:多模态视觉问答新突破

LLaVA-1.5在多模态视觉问答(VQA)任务中取得了显著进展,主要得益于视觉-语言连接器的优化和特定任务数据集的增加。通过将连接器升级为两层MLP,模型在处理视觉与语言关系时表现更佳。同时,引入如OKVQA、OCRVQA等数据集,增强了模型在复杂视觉推理任务中的能力。在11个基准测试中,LLaVA-1.5超越了现有方法,展示了其强大的多模态能力。此外,模型通过提升输入图像分辨率、扩展语言模型和改进多语言能力,进一步提升了性能。尽管在短格式回答任务中初期表现不佳,但通过调整提示格式和微调,其性能显著提升

weixin_57060548的博客 945

基于LendingClub数据的信贷分析和建模报告

一:课题分析 二:数据获取 三:数据探索 3.1主要特征含义理解 3.2特征分布 3.2.1目标特征分布 3.2.2分类变量的分布 3.2.3连续数值特征分布 3.2.4时序特征分布 3.2.5文字特征分布 3.2.6两两特征的协方差 四:数据预处理 4.1数据集划分 4.2特征缺失值识别与处理 4.2.1严重缺失值的处理 4.2.2缺失值填充 4.3同值性特...

棒子皮蹦蹦床 2万+

MFC文件操作

 1.创建文件夹 CreateDirectory(%%1,NULL); 2.创建文件 CFile file;  file.Open(%%1,CFile::modeCreate|CFile::modeWrite);  3.删除文件 DeleteFile(%%1);  4.删除文件夹 RemoveDirectory(%%1);  5.删除

zhaozhanyong的专栏 4720

解决k8s核心组件calico pod资源不创建问题

解决k8s核心组件calico pod资源不创建问题 1.问题描述 由于K8S集群Master节点故障,导致calico网络组件虽然处于Running状态,但是一直无法准备就绪,如下图所示 calico-node-lpt7h运行在master节点,第一时间紧急处理方法就是将其pod删除,让K8S自动重建该pod,使整个集群快速恢复 但是就当我将calico-node-lpt7h pod删除后,该pod始终无法自建,就好像是从来没有这个pod似的 2.解决方法 期初排查时,我觉得可能是由于当前master

江晓龙的博客 4807

Zip压缩文件 与 解压 (MFC 文件操作 四 )

一、压缩文件 我们的程序要用到了zip压缩,就需要自己将几个zip相关文件加入到工程中 zlib.h zconf.h zlib.lib 这些可以自己上网下载 http://d.download.csdn.net/down/2344459/mryeze 在程序中要将 两个.h文件 add to project。然后声明引入lib #include "zlib.h"/...

weixin_30583563的博客 390

用python画年度和月度的日历图

用python画各种日历图,可以区分月份来画也可以画一整年的,日历图中可以体现自己的信息

weixin_44853840的博客 2138

基于百度地图API在AI Studio上的卫星地图块图像处理与分类

本项目基于百度地图API获取了不同的瓦片地图并进行合并等处理,可用于遥感和抽象地图的地图块的图像分类、分割、检测等数据的制作。瓦片地图金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。首先确定地图服务平台所要提供的缩放级别的数量N,把缩放级别最高、地图比例尺最大的地图图片作为金字塔的底层,即第0层,并对其进行分块,从地图图片的左上角开始,从左至右、从上到下进行切割,分割成相同大小(比如256x256像素)的正方形地图瓦片,形成第0层瓦片矩阵;

斌擎科技 746

使用unrar.lib静态库解压.rar文件

头文件中引入dll.hpp 和UnRAR.lib。如果报错为某标识符未定义,可能是缺少一些定义标识符的头文件,自己加上即可。// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <iostream> //#include <windows.h> //#include <objbase.h> //#inc

libeyond_的专栏 5906

5、Visual Studio Code:强大的编码与文件管理功能

本文详细介绍了 Visual Studio Code 的强大编码与文件管理功能,涵盖代码导航、引用查找、符号重命名、实时代码分析、IntelliCode 提示、文件和文件夹操作等内容。通过功能对比、流程图和实际开发案例,展示了 VS Code 如何提升开发效率和代码质量,适用于各类编程语言和项目开发场景。

water的专栏 134

MFC之解压zip文件

zip和unzip类下载地址:https://download.csdn.net/download/bigtree_mfc/11244981 先将zip.h、zip.cpp、unzip.h、unzip.cpp放入工程 使用下面的函数就可以了 // 返回True表示没有错误,返回False表示有错误发生, //strDstPath,目标文件夹,strZipName解压的文件名(含绝对...

金属服务,美好生活,天网改变世界,华帝量子科技。 2499

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

利用VC调用WinRAR解压和压缩文件

利用WinExec,CreateProcess,ShellExecute都可以调用WinRAR.exe来进行文件的压缩与解压。 首先要从注册表获取WinRAR的安装路径,参考代码 CString GetWinRARPath() {  HKEY hKEY;   LPCT

436

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 【MFC】VC 删除目录和文件
下一篇: 【MFC】将有分隔符的字符串(string/CString)转化为int
Kayee2012
博客等级 码龄18年 27粉丝 35原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值