zip & unzip library (with source)

dzt

Active Member
Licensed User
Two functions (currently only for desktop, requires .NET 2.0).
CreateZip(zipFileName, sourceDirectory, recurseDirectories, fileFilter)
ExtractZip(zipFileName, targetDirectory, fileFilter)

Implements (wraps is a better word) part of #developZipLib class FastZip


Attached are:
dzZipLib.zip, VB source code and #develop project.
ZipTest1.zip, B4PPC source.

You also need to download ICSharpCode.SharpZipLib.dll from http://www.sharpdevelop.net

I ask for your understanding because of the very very early development stage.
 

Attachments

Louis

Active Member
Licensed User
Hi. Can you please explain what goes in to each parameter, what types of arguments and what they are for? BTW, you've done an awesome job! I am thrilled this exists! Take care.
 

dzt

Active Member
Licensed User
Hi,

CreateZip(zipFileName as String, sourceDirectory as String, recurseDirectories as Boolean, fileFilter as String)

zipFileName: The zip file to be ceated. Ex. AppPath & "\test.zip"
sourceDirectory: Where the files to zip are. Ex. AppPath or \Temp
recurseDirectories: Add directoriies Info or not. Ex. true
fileFilter: Files with what extension to add. Ex. .txt or .sbp

ExtractZip(zipFileName as string, targetDirectory as String, fileFilter as String)

zipFileName: The zip file to be unzipped. Ex. AppPath & "\test.zip"
targetDirectory: In which folder should put the files. Ex. AppPath or \Temp
fileFilter: Files with what extension to unzip. Ex. .txt or .sbp
 

dzt

Active Member
Licensed User
new version

Zip and Unzip Library for Basic4PPC. Targets .NET 1.1 (desktop) and .NET 1.0 (device) and needs ICSharpCode.SharpZipLib.dll (open source zip library)
Has 4 functions. All of them works for desktop, but 3 of them works for the device.
For CreateZip (desktop only) and ExtractZip (device and desktop) see previous post.

Short description for 2 new functions:

ZipFiles(FilesToZip, ZipFile)
FilesToZip an array of string containing full path filenames to zip
ZipFile a string containing full path of zip file to be created

UnzipFiles(TargetDirectory, ZipFile)
TargetDirectory a string containing full path to folder where zipped files will exists after unzip. If the folder doesn't exists it will be created by the library.
ZipFile a string containing full path of zip file to be unzipped.

For how to use this library see attached b4ppc sample file.
To download compiled DLLs press here http://www.terracom.gr/basic4ppc/dzZipLib_DLLs_only.zip
To download dzZipLib vb.net source press here http://www.terracom.gr/basic4ppc/dzZipLib-2.zip
To download ICSharpCode.SharpZipLib c# source code go to www.sharpdevelop.net

Regards
 

Attachments

adukes

Member
Licensed User
Two functions (currently only for desktop, requires .NET 2.0).
CreateZip(zipFileName, sourceDirectory, recurseDirectories, fileFilter)
ExtractZip(zipFileName, targetDirectory, fileFilter)

Implements (wraps is a better word) part of #developZipLib class FastZip


Attached are:
dzZipLib.zip, VB source code and #develop project.
ZipTest1.zip, B4PPC source.

You also need to download ICSharpCode.SharpZipLib.dll from http://www.sharpdevelop.net

I ask for your understanding because of the very very early development stage.

When I unzip and load the ZipTest1 app in the Basic4ppc editor to test with, I get this Basic4ppc message: An error occured. The format of the 'dzZipLib.dll' is invalid. I also get this when I click OK on the Components dialog box with dzZipLib.dll loaded. Any ideas anyone?
 

dzt

Active Member
Licensed User
use ICSharpCode.SharpZipLib.dll and dzZipLib.dll from the second version I've posted. They are both compiled for .NET 1.0.
In the first post they are compiled for .NET 2.0 and I think that this is the problem. Do you have .NET 2.0 installed?
 

adukes

Member
Licensed User
use ICSharpCode.SharpZipLib.dll and dzZipLib.dll from the second version I've posted. They are both compiled for .NET 1.0.
In the first post they are compiled for .NET 2.0 and I think that this is the problem. Do you have .NET 2.0 installed?
I downloaded the second version and it worked. But I do have .Net 2.0 installed. To be specific I have version 2.0.50727. I got this from Visual Studio 2005..Help..About. I would think either version should work. If I look in Add and Remove Programs it shows I have .Net 1.1 and 2.0 installed. Should I remove version 1.1? Maybe there is a .Net 2.0 service pack I do not have.
 

Louis

Active Member
Licensed User
Hi.
When I load the library into the IDE on the Pocket PC I get this error when using the .net 1.0 version:
Could not load type IPCSharpCode.SharpZipLib.Zip.FastZip from assembly Version=0.85.1.271, Culture=neutral, PublicKeyToken=1B03E6ACF116
Am I missing something? I have both the DZTZipLib.dll and the ICSharpCode .dll you provided. Any help would be cool! Thanks, and I am still excited about this library. BTW, you have any plans on doing sound libraries, like being able to play and control multiple sounds? Thanks, and keep up the great work!
 
Last edited:

dzt

Active Member
Licensed User
Hi,

I'll try to make some things clear.

Basic4ppc (desktop and device version is a .NET 1 application (desktop 1.1 and device 1.0 SP3).
The same .NET version targets EXEs that it produces.

To run Basic4ppc and/or produced EXEs under .NET 2.0 (especially when they are using .NET 2.0 DLLs) needs some additional care.

Look here http://www.basic4ppc.com/netcf2.html and for additional informatiocn I suggest you to take a look here http://www.pluralsight.com/blogs/jimw/archive/2006/01/08/17909.aspx

Now I'll try to be more specific.

adukes, that is why you take an error message when you are trying to open ziptest1.sbp with the .NET 2.0 dzZipLib.dll I've posted at the beginning of this thread. You need a config file. See the first link in this post and download config file for desktop. But I suggest you to use DLLs from the second version I've posted. You loose nothing and you have some benefits (two more functions, PPC compatibility).

Louis, for the same reason you need a config file for your device. Download it from the first link.

Be careful, what Basic4PPC needs to run under .NET 2.0, needs your compiled application too. A config file. Try to rename dBasic.exe.config or Basic4ppc.exe.config to YourApp.exe.config and put it in the same folder as YourApp.exe.

I hope I helped,

regards
 

Louis

Active Member
Licensed User
Hi. My device does NOT support .net framework 2.0 at all, it will only run the .net framework 1.0 SP3. The dlls I downloaded were from your second post, not the post at the beginning and that is the error I got. Should I try a config file anyway? Thanks. .net 1.0 SP3 is installed on my Pocket PC by default and it cannot be removed. Tell Freedom Scientific thanks when you get the chance, LOL. They made it!
 

dzt

Active Member
Licensed User
Hi Louis,

You are right. I confirmed the error, I didn't tested it previously that way.
It is a strange behaviour.

I did a hard reset to a Windows Mobile 5.0 device, I installed B4PPC and I tryed to load ziptest1.sbp. It failed with the error you noticed. In a Windows Mobile 5.0 device with .NETCF 2.0 all is OK!

But on the other hand when I compile ziptest1.sbp on a desktop computer and copy ziptest1.exe (don't forget it is also a .NETCF 1.0 app like b4ppc) to the previous hardreseted device, it is working fine!

You can download from the following link compiled EXEs for desktop and device.
http://www.terracom.gr/basic4ppc/files/ziptest1_compiled.zip

I don't know why is this happening. Maybe Erel can help.

Regards
 

adukes

Member
Licensed User
Hi dzt,
Thanks for shedding light on this. I was totally confused. Now I know why my first attempt at a "Hello World" library I wrote in Visual Studio 2005 would not load in Basic4ppc. This has been a great learning experience for me thanks to guys like you.
 

skipper

Member
Licensed User
Adding files to .ZIP

Hello DZT,

I don't know it it would be possible, but i'll try.... ;)

It would be great if the ZipFile(arr(),zipName) function would add the arr() file names to the zipName instead of creating a new one. It would be great to have

ZipFile(arr(),zipName,bool)

where

bool=True --> add the file array to the existent .ZIP (if the zip does not exist, creates a new one)
bool=False --> creates/overwrite the .ZIP

Thanks
Mimmo
 

GK01

New Member
Licensed User
Zip file library

Hi, I am new in the forum, thanks for all good work that is found on the forum. :)

Regardig ZIP file : The examples works fine however i get errors adding files with .dat extentions (some works and some gives error). Looking into the links to the DLL library there are a large number of unresolved issued, have anyone used an alternative library making ZIP files ?
 
Top