日期:2014-05-19  浏览次数:20862 次

关于2.0里面的解压缩
我目前在做的项目要加入压缩和解压缩

我在MSDN里看到的关于解压缩的内容有一处不明白为什么,请同志们给我个提示
不够再追加

using   System;
using   System.IO;
using   System.IO.Compression;

public   class   GZipTest
{
public   static   int   ReadAllBytesFromStream(Stream   stream,   byte[]   buffer)  
{
//   Use   this   method   is   used   to   read   all   bytes   from   a   stream.
int   offset   =   0;
int   totalCount   =   0;
while   (true)  
{
int   bytesRead   =   stream.Read(buffer,   offset,   100);  
if   (   bytesRead   ==   0)  
{
break;  
}
offset   +=   bytesRead;
totalCount   +=   bytesRead;  
}
return   totalCount;
}  

public   static   bool   CompareData(byte[]   buf1,   int   len1,   byte[]   buf2,   int   len2)  
{
//   Use   this   method   to   compare   data   from   two   different   buffers.
if   (len1   !=   len2)  
{  
Console.WriteLine( "Number   of   bytes   in   two   buffer   are   different   {0}:{1} ",   len1,   len2);
return   false;
}

for   (   int   i=   0;   i <   len1;   i++)  
{
if   (   buf1[i]   !=   buf2[i])  
{
Console.WriteLine( "byte   {0}   is   different   {1}|{2} ",   i,   buf1[i],   buf2[i]);
return   false;
}
}
Console.WriteLine( "All   bytes   compare. ");
return   true;  
}

public   static   void   GZipCompressDecompress(string   filename)
{
Console.WriteLine( "Test   compression   and   decompression   on   file   {0} ",   filename);
FileStream   infile;
try
{
//   Open   the   file   as   a   FileStream   object.
infile   =   new   FileStream(filename,   FileMode.Open,   FileAccess.Read,   FileShare.Read);
byte[]   buffer   =   new   byte[infile.Length];
//   Read   the   file   to   ensure   it   is   readable.
int   count   =   infile.Read(buffer,   0,   buffer.Length);
if   (   count   !=   buffer.Length)  
{
infile.Close();
Console.WriteLine( "Test   Failed:   Unable   to   read   data   from   file ");  
return;
}
infile.Close();
MemoryStream   ms   =   new   MemoryStream();
//   Use   the   newly   created   memory   stream   for   the   compressed   data.
GZipStream   compressedzipStream   =   new   GZipStream(ms   ,   CompressionMode.Compress,   true);
Console.WriteLine( "Compression ");
compressedzipStream.Write(buffer,   0,   buffer.Length);
//   Close   the   stream.
compressedzipStream.Close();
Console.WriteLine( "Original   size