[WPF 學習] 5. 1 版本升級之壓縮和解壓

生成的單個文件的壓縮率可達50%,忍不住要壓縮一下,固然下載的時候也須要解壓,我用的是GZipStreamcode

1.壓縮orm

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()會丟掉部份內容。ip

2.解壓get

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);
相關文章
相關標籤/搜索