首页 新闻 搜索 专区 学院

C#压缩下载

0
悬赏园豆:20 [已解决问题] 解决于 2018-04-10 11:46

已知多个文件内容(字符串),怎么将它们压缩成一个文件流

C#
yjcd的主页 yjcd | 初学一级 | 园豆:119
提问于:2018-03-19 09:41
< >
分享
最佳答案
0

  代码如下:

        static void Main(string[] args)
        {
            //1.获取从文件中读取的文本(假如文字如下)
            const string input = "测试文字:你好";

            //2.压缩
            var compressResult = GZip.Compress(input);

            //2.1 显示压缩结果
            Console.WriteLine(compressResult);

            //3.解压
            var decompressResult = GZip.Decompress(compressResult);

            //3.1 显示解压结果
            Console.WriteLine(decompressResult);

            Console.Read();
        }

  一个助手类封装 GZip.cs

public class GZip
    {
        /// <summary>
        ///     压缩
        /// </summary>
        /// <param name="text">文本</param>
        public static string Compress(string text)
        {
            var buffer = Encoding.UTF8.GetBytes(text);
            return Convert.ToBase64String(Compress(buffer));
        }

        /// <summary>
        ///     解压缩
        /// </summary>
        /// <param name="text">文本</param>
        public static string Decompress(string text)
        {
            var buffer = Convert.FromBase64String(text);
            using (var ms = new MemoryStream(buffer))
            {
                using (var zip = new GZipStream(ms, CompressionMode.Decompress))
                {
                    using (var reader = new StreamReader(zip))
                    {
                        return reader.ReadToEnd();
                    }
                }
            }
        }

        /// <summary>
        ///     压缩
        /// </summary>
        /// <param name="buffer">字节流</param>
        public static byte[] Compress(byte[] buffer)
        {
            if (buffer == null)
                return null;
            using (var ms = new MemoryStream())
            {
                using (var zip = new GZipStream(ms, CompressionMode.Compress, true))
                {
                    zip.Write(buffer, 0, buffer.Length);
                }

                return ms.ToArray();
            }
        }
    }

  可以看到,Compress() 和 Decompress() 就使用了流进行操作。

 

  结果:

收获园豆:20
反骨仔 | 菜鸟二级 |园豆:444 | 2018-03-20 11:41
其他回答(2)
0

分别搜索以下四种问题

1、如何学好C#,或者《ASP.NET 从入门到精通》

2、字符串 写入文件 c#

3、文件压缩 c#

4、文件下载 c#

爱编程的大叔 | 园豆:30743 (高人七级) | 2018-03-19 09:46

简单说来就是请放弃coding 

支持(0) 反对(0) 日暮青色 | 园豆:455 (菜鸟二级) | 2018-03-19 09:50

能具体点吗。。。。

支持(0) 反对(0) yjcd | 园豆:119 (初学一级) | 2018-03-19 10:05
0

刚把以前的例子整理出来,你可以看看 http://www.cnblogs.com/huage-1234/p/8601600.html 里面的压缩,看看对你有没有帮助

华临天下 | 园豆:1396 (小虾三级) | 2018-03-19 13:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册