使用VC++压缩解压缩文件夹

简介:
前言  项目中要用到一个压缩解压缩的模块, 看了很多文章和源代码, 
都不是很称心, 现在把我自己实现的代码和大家分享.


要求:

 

       1.使用Unicode(支持中文).

       2.使用源代码.(不使用静态或者动态库)

       3.实现文件夹压缩解压缩即可.(不提供单文件压缩和内存压缩)

       4.压缩格式为ZIP.

       5.具有一定的容错能力.(判断用户输入的内容)

 

代码如下:

*********************ZipImplement.h********************

ZipImplement.h


*********************ZipImplement.cpp*********************

ZipImplement.cpp

 

=====================以上为源代码=====================

简单说明:

1.使用VS2003编写.

2.WinXp sp2下运行测试通过.

3.为了简化算法,使用了很多MFC提供的函数, 如果要移植到标准C++请重新实现部分函数.

4.压缩算法采用了ljw1004 这位高手的算法.

5."zip.h" 和 "unzip.h"以及实现请至 http://www.codeproject.com/KB/files/zip_utils.aspx 下载, 下载的源文件中有示例程序可以参考. 
    将下载后的 zip.h unzip.h zip.cpp unzip.cpp 添加到自己的项目中.

后记:第一次使用VC++开发项目,遇到了很多问题,对于相关的问题和我自己的解决办法将在以后的文章中给出.

目录
相关文章
|
4月前
|
算法 编译器 API
C++ MiniZip实现目录压缩与解压
Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法。它最初由`Jean-Loup Gailly`和`Mark Adler`开发,旨在成为一个高效、轻量级的压缩库,其被广泛应用于许多领域,包括网络通信、文件压缩、数据库系统等。其压缩算法是基于`DEFLATE`算法,这是一种无损数据压缩算法,通常能够提供相当高的压缩比。在Zlib项目中的`contrib`目录下有一个`minizip`子项目,minizip实际上不是`zlib`库的一部分,而是一个独立的开源库,用于处理ZIP压缩文件格式。它提供了对ZIP文件的创建和解压的简单接口。minizip在很多情况下与`zlib`一起使用
135 0
C++ MiniZip实现目录压缩与解压
|
5月前
|
Java
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
|
6月前
45 # 实现文件拷贝功能
45 # 实现文件拷贝功能
28 0
|
8月前
|
Linux
Linux常用的压缩与解压
1、gzip压缩解压 因为都是系统自带的我们不需要安装; ls 看一下目录当前的文件,创建一个 touch 123.txt 文件; 原文件消失,压缩解压 gzip 进行压缩,(“ gzip 123.txt ”),这样就压缩完毕了; gzip 进行解压,(“ gzip -d 123.txt.gz”),这样就解压完毕了; 原文件保留,gzip -k 123.txt、gzip -dk 123.txt.gz ; 2、bzip2压缩解压 因为都是系统自带的我们不需要安装; 原文件消失,压缩解压 bzip2进行压缩,(“ bzip2 123.txt ”),这样就压缩完毕了; bzip2 进行解压,(“
56 0
|
10月前
|
测试技术
【解决方案 十四】文件夹压缩及解压、递归删除文件夹
【解决方案 十四】文件夹压缩及解压、递归删除文件夹
90 0
C#编程-116:获取指定目录下的所有文件及文件夹
C#编程-116:获取指定目录下的所有文件及文件夹
522 0
|
Python
python-批量把文件和文件夹同时压缩成ZIP文件
1.通过某种方式获得一个文件(文件夹)列表作为一个list(例如wxpython的wx.FileDialog方法,在下面的代码中我们跳过文件夹列表的获取方法)。 2.选择一个压缩文件的输出目录和压缩文件的输出名字(下面代码中选择输出默认路径为程序根目录) 3.把文件list里的文件,先统一放在一个临时文件夹里,然后把该临时文件夹压缩成ZIP文件,最后删掉临时文件夹
258 0
|
算法 C++
使用VC++压缩解压缩文件夹
前言  项目中要用到一个压缩解压缩的模块, 看了很多文章和源代码, 都不是很称心, 现在把我自己实现的代码和大家分享. 要求:          1.使用Unicode(支持中文).        2.
1024 0