zip、zip压缩文件、添加多级文件路径如何处理?C++上是不是很难搞?别急

具体代码详见我上传的资源:


https://download.csdn.net/download/skyksksksksks/87500898

相信经常玩C++的都知道,如果遇到需要操作压缩文件,怎么办?
以zip压缩文件举例,如果接下来的需求是,
要将一个多级文件下的所有文件、包括文件路径结构,
全部压缩到zip压缩文件中的指定位置,怎么办?

很多人第一时间想到的是,这还不简单?直接上网找一个开源的zip压缩文件库,
然后用现成的API玩,不就行了,真的这么简单?
但是,很多人到这里时,就会傻眼了,
因为很多API只会提供在zip压缩文件指定位置添加指定单个文件,
或者在zip压缩文件指定位置添加文件路径(或者说空文件夹),
想要直接将一个多级文件下的所有文件、包括文件路径结构,
全部压缩到zip压缩文件中的指定位置,门都没有!

到这里是不是已经快要想砸电脑、换编程语言了,别急。
其实这些都是可以通过一些逻辑处理来实现的,有时候需要用到递归调用。
当然如果觉得麻烦,也没事。
为了解决这种尴尬的问题,我索性自己写一个类,
将这些功能做到一个函数中,方便以后使用。

类中函数声明见下方:

    /*
    @param
    pctszFilePath 文件路径
    pctszPassword 密码
    @return
    0 成功、-1 失败
    @note 初始化
    */
    long Init(LPCTSTR pctszFilePath, LPCTSTR pctszPassword = NULL);
    /*
    @param
    pctszFilePathOfSour 源文件路径
    pctszRelativeFilePathOfDest 目标相对文件路径
    @return
    0 成功、-1 失败
    @note 添加文件到压缩文件
    */
    long AddFileToZipFile(LPCTSTR pctszFilePathOfSour, LPCTSTR pctszRelativeFilePathOfDest = NULL);
    /*
    @param
    pctszDirectoryOfSour 源路径
    pctszRelativeDirectoryOfDest 目标相对路径
    @return
    0 成功、-1 失败
    @note 添加多个文件到压缩文件
    */
    long AddFilesToZipFile(LPCTSTR pctszDirectoryOfSour, LPCTSTR pctszRelativeDirectoryOfDest = NULL);
    /*
    @param
    pctszFilePath 文件路径
    pctszPassword 密码
    @return
    0 成功、-1 失败
    @note 重新初始化
    */
    long ReInit(LPCTSTR pctszFilePath, LPCTSTR pctszPassword = NULL);
    /*
    @param
    pctszDirectoryOfDest 目标路径
    @return
    0 成功、-1 失败
    @note 从压缩文件获取多个文件
    */
    long GetFilesFromZipFile(LPCTSTR pctszDirectoryOfDest);
    /*
    @param
    @return
    0 成功、-1 失败
    @note 释放
    */
    long Free();

具体代码详见我上传的资源:


https://download.csdn.net/download/skyksksksksks/87500898

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyksksksksks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值