Click here to Skip to main content
11,633,425 members (81,061 online)
Click here to Skip to main content

C++ wrapper for Gilles Vollant's Unzip API

, 10 Dec 2002 Eclipse 186.1K 4.3K 62
Rate this:
Please Sign up or sign in to vote.
Presents an extended yet simplified interface to querying, filtering and extracting multiple files from a zip archive

Sample Image - unzip.jpg

Introduction

I've been trawling the web for ages trying to find some zip extraction code which

  1. I could understand and
  2. did not have excessive restrictions.

Then I stumbled across Gilles Vollant's excellent work on providing a multi-file API to the ZLib code base written by Jean-loup Gailly and Mark Adler.

That was yesterday. A day later I had wrapped Gilles' code in a simplified C++ wrapper with extended features.

I don't want to gush too much, but having spent the last six months looking for code such as his, I was very impressed by how simply I could understand it and work with it.

The features I've added include:

  • Navigating/extracting the embedded files/folders by index
  • Navigating/extracting the embedded files by file extension
  • Extracting the embedded files whilst ignoring the path info stored with each file. i.e., flattening the file structure

The purpose of this release is mostly to assist people like me who were looking for some code to start with. If I come up with any useful extensions then I will update the code, but feel free (as I know you will) to criticize the code in anyway you like.

p.s. The sample app which comes with the code will show how to use it.

p.s to p.s. Although the sample app is MFC, the wrapper class is pure Win32.

License

This article, along with any associated source code and files, is licensed under The Eclipse Public License 1.0

Share

About the Author

.dan.g.
Software Developer Maptek
Australia Australia
.dan.g. is a naturalised Australian and has been developing commercial windows software since 1998.

For all his latest freeware visit AbstractSpoon.

You may also be interested in...

Comments and Discussions

 
GeneralOnly Console mode Pin
msadik24-Jun-05 3:57
membermsadik24-Jun-05 3:57 
Generalfile name directory Pin
sir kaber5-Mar-05 19:18
membersir kaber5-Mar-05 19:18 
hey, suppose i open a name.zip file. the code, makes a starting off folder called
Name
Name\FileExtraction.txt, etc..

Is there a way so that Name isn't created ?

GeneralRe: file name directory Pin
sir kaber5-Mar-05 19:19
membersir kaber5-Mar-05 19:19 
GeneralRe: file name directory Pin
rajalist7-Dec-06 19:49
memberrajalist7-Dec-06 19:49 
QuestionWhy win32? Pin
tentons27-Aug-04 13:25
membertentons27-Aug-04 13:25 
QuestionIs this thing still alive ? Pin
Anonymous6-Jul-04 18:07
sussAnonymous6-Jul-04 18:07 
QuestionCan you help me? Pin
Alick Xiong17-Jun-04 21:42
memberAlick Xiong17-Jun-04 21:42 
QuestioneVC++? Pin
Hameed Chishti15-May-04 0:48
memberHameed Chishti15-May-04 0:48 
GeneralFolder attributs are forget too !! Pin
bebert2-Dec-03 4:07
memberbebert2-Dec-03 4:07 
QuestionWhere are file and folder attributs ?? Pin
bebert28-Sep-03 22:44
memberbebert28-Sep-03 22:44 
AnswerRe: Where are file and folder attributs ?? Pin
dang!29-Sep-03 15:15
memberdang!29-Sep-03 15:15 
GeneralYou got a 5 from me Pin
Tom Welch9-Sep-03 3:52
memberTom Welch9-Sep-03 3:52 
GeneralRe: You got a 5 from me Pin
Ravi Bhavnani27-Sep-03 10:46
memberRavi Bhavnani27-Sep-03 10:46 
GeneralRe: You got a 5 from me Pin
dang!28-Sep-03 14:06
memberdang!28-Sep-03 14:06 
GeneralRe: You got a 5 from me Pin
Iramon21-Dec-03 20:52
memberIramon21-Dec-03 20:52 
GeneralRe: You got a 5 from me Pin
.dan.g.22-Dec-03 18:24
member.dan.g.22-Dec-03 18:24 
QuestionHow to incorporate Gilles Vollant's code to for a DLL Pin
gumber26-Aug-03 2:26
membergumber26-Aug-03 2:26 
AnswerRe: How to incorporate Gilles Vollant's code to for a DLL Pin
dang!27-Aug-03 17:16
memberdang!27-Aug-03 17:16 
GeneralRe: How to incorporate Gilles Vollant's code to for a DLL Pin
gumber29-Aug-03 21:55
membergumber29-Aug-03 21:55 
QuestionBuffering? Pin
Anonymous23-May-03 12:07
sussAnonymous23-May-03 12:07 
AnswerRe: Buffering? Pin
DanG26-May-03 15:12
memberDanG26-May-03 15:12 
GeneralSwitching to C Pin
darkchrono22-Apr-03 15:43
memberdarkchrono22-Apr-03 15:43 
GeneralRe: Switching to C Pin
DanG22-Apr-03 16:00
memberDanG22-Apr-03 16:00 
GeneralRe: Switching to C Pin
darkchrono22-Apr-03 16:17
memberdarkchrono22-Apr-03 16:17 
GeneralRe: Switching to C Pin
DanG22-Apr-03 17:49
memberDanG22-Apr-03 17:49 
GeneralRe: Switching to C Pin
darkchrono22-Apr-03 17:53
memberdarkchrono22-Apr-03 17:53 
GeneralRe: Switching to C Pin
DanG22-Apr-03 18:14
memberDanG22-Apr-03 18:14 
Questionconst UINT BUFFERSIZE = 20480 ?? Pin
alnite30-Mar-03 14:42
memberalnite30-Mar-03 14:42 
AnswerRe: const UINT BUFFERSIZE = 20480 ?? Pin
DanG1-Apr-03 16:33
memberDanG1-Apr-03 16:33 
GeneralZipper Wrapper Pin
Tyler Carver13-Mar-03 12:27
sussTyler Carver13-Mar-03 12:27 
GeneralRe: Zipper Wrapper Pin
DanG13-Mar-03 18:49
memberDanG13-Mar-03 18:49 
Generalexclude libs Pin
Beer11-Jan-03 18:21
memberBeer11-Jan-03 18:21 
GeneralFeedback Pin
Larry Antram10-Dec-02 21:44
memberLarry Antram10-Dec-02 21:44 
GeneralRe: Feedback Pin
DanG10-Dec-02 22:35
memberDanG10-Dec-02 22:35 
GeneralRe: Feedback Pin
Uwe Keim11-Dec-02 19:53
sitebuilderUwe Keim11-Dec-02 19:53 
GeneralRe: Feedback Pin
Andreas Saurwein12-Dec-02 9:12
memberAndreas Saurwein12-Dec-02 9:12 
GeneralRe: Feedback Pin
Andreas Saurwein11-Dec-02 1:25
memberAndreas Saurwein11-Dec-02 1:25 
GeneralRe: Feedback Pin
Matthias Mann12-Dec-02 2:28
memberMatthias Mann12-Dec-02 2:28 
GeneralRe: Feedback Pin
Andreas Saurwein12-Dec-02 9:10
memberAndreas Saurwein12-Dec-02 9:10 
GeneralGood But... Pin
bruno leclerc10-Dec-02 21:03
memberbruno leclerc10-Dec-02 21:03 
GeneralRe: Good But... Pin
Luca Piccarreta10-Dec-02 22:18
memberLuca Piccarreta10-Dec-02 22:18 
GeneralRe: Good But... Pin
DanG10-Dec-02 22:38
memberDanG10-Dec-02 22:38 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150728.1 | Last Updated 11 Dec 2002
Article Copyright 2002 by .dan.g.
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid