DotNetZipLib类库的地址:http://dotnetzip.codeplex.com/

C#解压缩DotNetZip_C#

将压缩包解压引用 :

C#解压缩DotNetZip_Dot_02

注意:以下所有代码都是控制台应用程序

先来一个测试(生成一个压缩包):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ionic.Zip;
namespace ZipKayer
{
    public class Program
    {
        public static void Main()
        {
            Console.WriteLine("Press a path to zip by ENTER: ");
            string ZipFileToCreate = Console.ReadLine();
            Console.WriteLine("Press a path to create by ENTER:");
            string DirectoryToZip = Console.ReadLine();
            try
            {
                using (ZipFile zip = new ZipFile())
                {
                    String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip);
                    foreach (String filename in filenames)
                    {
                        Console.WriteLine("Adding {0}...", filename);
                        ZipEntry e = zip.AddFile(filename);
                        e.Comment = "Added by Cheeso's CreateZip utility.";
                    }
                    zip.Comment = String.Format("This zip archive was created by the CreateZip example application on machine '{0}'",
                       System.Net.Dns.GetHostName());
                    zip.Save(ZipFileToCreate);
                }
            }
            catch (System.Exception ex1)
            {
                Console.WriteLine("exception: " + ex1);
            }
            Console.Read();
        }
    }
}

代码解释:

①:ZipFileToCreate : 为生成Zip文件的字符串path

②:DirectoryToZip : 需要生成Zip的文件夹的Path

以上2个String变量都采取控制台输入方式

现测试如下:

C#解压缩DotNetZip_Dot_03

运行程序:

C#解压缩DotNetZip_C#_04

运行的结果 , 会在相关目录下(ZipFileToCreate)生成一个Housing.zip的压缩文件

C#解压缩DotNetZip_解压缩_05

打开ZIP文件发现,Root是Happy(E盘以下的一个文件夹),而且中文的docx名称

C#解压缩DotNetZip_C#_06


现在看看如何解压:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ionic.Zip;
namespace ZipKayer
{
    public class Program
    {
        public static void Main()
        {
            try
            {
                ReadOptions options = new ReadOptions { StatusMessageWriter = System.Console.Out };
                using (ZipFile zip = ZipFile.Read(@"E:\Happy\Housing\Housing.zip", options))
                {
                    zip.ExtractAll(@"E:\Happy");
                }
            }
            catch (System.Exception ex1)
            {
                System.Console.Error.WriteLine("exception: " + ex1);
            }
            Console.Read();
        }
    }
}

解释:

        ①:@"E:\Happy\Housing\Housing.zip" -> 需要解压的Zip文件

        ②:@"E:\Happy" -> 解压后的文本存放的位置

C#解压缩DotNetZip_解压缩_07

所以 , 对于程序来说,没事不要取中文名字。