예제 #1
0
        public static void Extract(string zipFileName)
        {
            ZipReader reader = new ZipReader(zipFileName);

            Console.WriteLine("Archive: {0}", zipFileName);
            Console.WriteLine(reader.Comment);

            // buffer to hold temp bytes
            byte[] buffer = new byte[4096];
            int    byteCount;

            // Get the zipped entries
            while (reader.MoveNext())
            {
                ZipEntry entry = reader.Current;

                if (entry.IsDirectory)
                {
                    Directory.CreateDirectory(entry.Name);
                }
                else
                {
                    Console.Write("  {0}", entry.Name);

                    // create output stream
                    FileStream writer = File.Open(entry.Name, FileMode.Create);

                    // write uncompressed data
                    while ((byteCount = reader.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        Console.Write(".");
                        writer.Write(buffer, 0, byteCount);
                    }
                    writer.Close();
                    Console.WriteLine();
                }
            }
            reader.Close();
        }