Wednesday, April 18, 2007

Using .NET to Extract Zip Files

using ICSharpCode.SharpZipLib.Core;

using ICSharpCode.SharpZipLib.Zip;


ZipInputStream s = new ZipInputStream(File.OpenRead(@"c:\test.zip"));

ZipEntry e;

byte[] buf = new byte[4096];

string BaseDir = @"c:\test2\";

ZipNameTransform zt = new ZipNameTransform();

 

if (!Directory.Exists(BaseDir))

    Directory.CreateDirectory(BaseDir);

 

while ((e = s.GetNextEntry()) != null)

{

    if (e.IsFile)

    {

        FileStream fs = File.Create(BaseDir + zt.TransformFile(e.Name));

        StreamUtils.Copy(s, fs, buf);

        Console.WriteLine("Extracting " + zt.TransformFile(e.Name));

    }

    else if (e.IsDirectory)

    {

        Directory.CreateDirectory(BaseDir + e.Name);

    }

}

s.Close();

s.Dispose();

No comments: