文件压缩代码(为.Net2.0新增)

 System.IO.Compression 命名空间
  注意:此命名空间在 .NET Framework 
2.0  版中是新增的。

  System.IO.Compression 命名空间包含提供基本的流压缩和解压缩服务的类。

压缩字符串

public   static   string  ZipString( string  unCompressedString)
{

byte [] bytData  =  System.Text.Encoding.UTF8.GetBytes(unCompressedString);
MemoryStream ms 
=   new  MemoryStream();
Stream s 
=   new  GZipStream(ms, CompressionMode.Compress);
s.Write(bytData, 
0 , bytData.Length);
s.Close();
byte [] compressedData  =  ( byte [])ms.ToArray();
return  System.Convert.ToBase64String(compressedData,  0 , compressedData.Length);
}

解压缩字符串


public   static   string  UnzipString( string  unCompressedString)
{
System.Text.StringBuilder uncompressedString 
=   new  System.Text.StringBuilder();
byte [] writeData  =   new   byte [ 4096 ];

byte [] bytData  =  System.Convert.FromBase64String(unCompressedString);
int  totalLength  =   0 ;
int  size  =   0 ;

Stream s 
=   new  GZipStream( new  MemoryStream(bytData), CompressionMode.Decompress);
while  ( true )
{
size 
=  s.Read(writeData,  0 , writeData.Length);
if  (size  >   0 )
{
totalLength 
+=  size;
uncompressedString.Append(System.Text.Encoding.UTF8.GetString(writeData, 
0 , size));
}
else
{
break ;
}
}
s.Close();
return  uncompressedString.ToString();
}
压缩文件

public   static   bool  AddZip( string  srcFilename,  string  zipFileName)
{
if  ( ! File.Exists(srcFilename))
return   false ;
bool  result;
FileStream fs 
=   null , output  =   null ;
GZipStream zipStream 
=   null ;
try
{
fs 
=   new  FileStream(srcFilename, FileMode.Open, FileAccess.Read);
byte [] buffer  =   new   byte [fs.Length];
fs.Read(buffer, 
0 , buffer.Length);
fs.Close();
if  ( ! File.Exists(zipFileName))
{
output 
=  File.Create(zipFileName);
zipStream 
=   new  GZipStream(output, CompressionMode.Compress);
zipStream.Write(buffer, 
0 , buffer.Length);
result 
=   true ;
}
else
{
result 
=   false ;
}
}
catch (Exception)
{
result 
=   false ;
}
finally
{
if  (zipStream  !=   null )
{
zipStream.Flush();
zipStream.Close();
}
}
return  result;
}

你可能感兴趣的:(.net)