打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
.Net2.0新增的对文件压缩代码-Binken‘s Blog
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;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于C#对文件的压缩和解压缩的问题
C#数据压缩
【.Net MF网络开发板研究
C#使用ICSharpCode.SharpZipLib.dll压缩文件夹和文件
.net 压缩文件夹
.NET基础拾遗(3)字符串、集合和流(下)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服