广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    .NET 2.0 的压缩功能代码

    2018-05-04 21:21:15 次阅读 稿源:互联网
    广告
    在.net 1.1中我们要实现压缩这一功能,一般都是用open source的SharpZipLib 或者调用J#类库。
    现在在.net 2.0中增加了压缩功能,名字空间为 using 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; 
    }  

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告