![]() |
Languages »
C# »
Utilities
Intermediate
License: The Code Project Open License (CPOL)
Make a Zip/UnZip Software using SharpZipLibBy flankerfcThis article shows how to use SharpZipLib to make a small Zip/UnZip software easily |
C# 2.0.NET 2.0, WinXPVS2005, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
This article shows a simple way to make a Zip/UnZip software using SharpZipLib.
SharpZipLib is a very nice OpenSource library. It's a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform. See this link.
You should use FileStream class as input/output. ZipInputStream and ZipOutputStream are two important classes in the project. ZipInputStream is used to unzip the zipped data to ordinary data. ZipOutputStream is used to zip the ordinary data to zipped data. And there is another class called ZipEntry. ZipEntry is an item zipped in the *.zip file.
I use a new thread to do the zip/unzip work because the large file may lead to the UI form not responding.
This is the zip method:
public static void Zip(string SrcFile, string DstFile, int BufferSize)
{
FileStream fileStreamIn = new FileStream
(SrcFile, FileMode.Open, FileAccess.Read);
FileStream fileStreamOut = new FileStream
(DstFile, FileMode.Create, FileAccess.Write);
ZipOutputStream zipOutStream = new ZipOutputStream(fileStreamOut);
byte[] buffer = new byte ;
ZipEntry entry = new ZipEntry(Path.GetFileName(SrcFile));
zipOutStream.PutNextEntry(entry);
int size;
do
{
size = fileStreamIn.Read(buffer, 0, buffer.Length);
zipOutStream.Write(buffer, 0, size);
} while (size > 0);
zipOutStream.Close();
fileStreamOut.Close();
fileStreamIn.Close();
}
This is the unzip method:
public static void UnZip(string SrcFile, string DstFile, int BufferSize)
{
FileStream fileStreamIn = new FileStream
(SrcFile, FileMode.Open, FileAccess.Read);
ZipInputStream zipInStream = new ZipInputStream(fileStreamIn);
ZipEntry entry = zipInStream.GetNextEntry();
FileStream fileStreamOut = new FileStream
(DstFile + @"\" + entry.Name, FileMode.Create, FileAccess.Write);
int size;
byte[] buffer = new byte ;
do
{
size = zipInStream.Read(buffer, 0, buffer.Length);
fileStreamOut.Write(buffer, 0, size);
} while (size > 0);
zipInStream.Close();
fileStreamOut.Close();
fileStreamIn.Close();
}
So you can see that it's very easy to make a small Zip/UnZip software. SharpZipLib is very powerful and you can do a lot of things with it.
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 14 Sep 2007 Editor: Deeksha Shenoy |
Copyright 2007 by flankerfc Everything else Copyright © CodeProject, 1999-2009 Web22 | Advertise on the Code Project |