using System.Collections;
static public bool CreateZipFile(ArrayList filenames)
ZipOutputStream m_ZipStream = null;
string m_TargetFile = "MyZipFiles.zip";
if (string.IsNullOrEmpty(m_TargetFile))
m_Error = string.Format("Target file name cannot be empty");
FileStream fsZipFile = File.Create(m_TargetFile);
m_ZipStream = new ZipOutputStream(fsZipFile);
m_ZipStream.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
Byte[] ByteArray = new Byte[nBytes];
foreach (String file in filenames)
ZipEntry zEntry = m_ZipStream.PutNextEntry(Path.GetFileName(file));
zEntry.CreationTime = DateTime.Now;
FileStream fsSourceFile = File.OpenRead(file);
nReadCount = fsSourceFile.Read(ByteArray, 0, ByteArray.Length);
m_ZipStream.Write(ByteArray, 0, nReadCount);
if (fsSourceFile != null)
m_Error = string.Format("CreateZipFile unhandled exception - {0}", ex.Message);
public static void Main()
string text = @"1732,Juan Perez,435.00,11-05-2002
554,Pedro Gomez,12342.30,06-02-2004
112,Ramiro Politti,0.00,01-02-2000
924,Pablo Ramirez,3321.30,24-11-2002";
File.WriteAllText(@"test0.txt", text);
File.WriteAllText(@"test1.txt", text);
File.WriteAllText(@"test2.txt", text);
ArrayList filenames = new ArrayList();
filenames.Add("test0.txt");
filenames.Add("test1.txt");
filenames.Add("test2.txt");
CreateZipFile(filenames);
using (ZipFile zip = ZipFile.Read("MyZipFiles.zip"))
Console.WriteLine("Extracted files:");
foreach (ZipEntry e in zip)
Console.WriteLine(e.FileName);