http://hardrock.cnblogs.com/archive/2005/12/23/303209.html
利用 SharpZipLib方便地压缩和解压缩文件
最新版本的SharpZipLib(0.84)增加了很多新的功能,其中包括增加了FastZip类,这让我们可以非常方便地把一个目录压缩成一个压缩包,经测试可以很好地支持文件中包含中文以及空格的情况。
1
/// <summary>
2
/// Create a zip archive.
3
/// </summary>
4
/// <param name="filename">The filename.</param>
5
/// <param name="directory">The directory to zip.</param>
6
public static void PackFiles(string filename, string directory)
7
{
8
try
9
{
10
FastZip fz = new FastZip();
11
fz.CreateEmptyDirectories = true;
12
fz.CreateZip(filename, directory, true, "");
13
fz = null;
14
}
15
catch (Exception)
16
{
17
throw;
18
}
19
}
20
21
/// <summary>
22
/// Unpacks the files.
23
/// </summary>
24
/// <param name="file">The file.</param>
25
/// <returns>if succeed return true,otherwise false.</returns>
26
public static bool UnpackFiles(string file, string dir)
27
{
28
try
29
{
30
if (!Directory.Exists(dir))
31
Directory.CreateDirectory(dir);
32
33
ZipInputStream s = new ZipInputStream(File.OpenRead(file));
34
35
ZipEntry theEntry;
36
while ((theEntry = s.GetNextEntry()) != null)
37
{
38
39
string directoryName = Path.GetDirectoryName(theEntry.Name);
40
string fileName = Path.GetFileName(theEntry.Name);
41
42
if (directoryName != String.Empty)
43
Directory.CreateDirectory(dir + directoryName);
44
45
if (fileName != String.Empty)
46
{
47
FileStream streamWriter = File.Create(dir + theEntry.Name);
48
49
int size = 2048;
50
byte[] data = new byte[2048];
51
while (true)
52
{
53
size = s.Read(data, 0, data.Length);
54
if (size > 0)
55
{
56
streamWriter.Write(data, 0, size);
57
}
58
else
59
{
60
break;
61
}
62
}
63
64
streamWriter.Close();
65
}
66
}
67
s.Close();
68
return true;
69
}
70
catch (Exception)
71
{
72
throw;
73
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

上面代码需要引用:


使用方法就不介绍了。
你可以到其官方网站下载最新版本的SharpZipLib:
http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx
或者直接使用该链接下载:
- Compiled assembly with documentation and install scripts Download [488 KB]
- Source code and samples Download [622 KB]
- Help file only Download [485 KB]
[DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载)
http://esshs.cnblogs.com/archive/2006/03/04/164162.html