欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[WPF 学习] 5. 1 版本升级之压缩和解压

程序员文章站 2022-11-21 14:54:44
生成的单个文件的压缩率可达50%,忍不住要压缩一下,当然下载的时候也需要解压,我用的是GZipStream 1.压缩 compressionStream.Flush(); 这很重要,否则msTarget.ToArray()会丢掉部分内容。 2.解压 ......

生成的单个文件的压缩率可达50%,忍不住要压缩一下,当然下载的时候也需要解压,我用的是gzipstream

1.压缩

            string filepath = ((system.array)e.data.getdata(dataformats.filedrop)).getvalue(0).tostring();
            fileinfo fi = new fileinfo(filepath);
            using filestream mssource = fi.openread();
            using memorystream mstarget = new memorystream();
            using gzipstream compressionstream = new gzipstream(mstarget, compressionmode.compress);
            mssource.copyto(compressionstream);
            compressionstream.flush();

compressionstream.flush();这很重要,否则mstarget.toarray()会丢掉部分内容。

2.解压

        using memorystream mss = new memorystream(buffer);
        using filestream mst = file.create(currentprocess.mainmodule.filename + "~");
        using gzipstream decompressionstream = new gzipstream(mss, compressionmode.decompress);
        decompressionstream.copyto(mst);