天天看点

C#中用SharpZipLib生成gzip/解压文件

Code tells all:

<code>using</code> <code>System;</code>

<code>using</code> <code>System.IO;</code>

<code>using</code> <code>ICSharpCode.SharpZipLib.GZip;</code>

<code>using</code> <code>ICSharpCode.SharpZipLib.Core;</code>

<code>namespace</code> <code>CNKIDataExport</code>

<code>{</code>

<code>    </code><code>class</code> <code>Program</code>

<code>    </code><code>{</code>

<code>        </code><code>public</code> <code>static</code> <code>void</code> <code>gZipFile(</code><code>string</code> <code>filePath, </code><code>string</code> <code>zipFilePath)</code>

<code>        </code><code>{</code>

<code>            </code><code>Stream s = </code><code>new</code> <code>GZipOutputStream(File.Create(zipFilePath));</code>

<code>            </code><code>FileStream fs = File.OpenRead(filePath);</code>

<code>            </code><code>int</code> <code>size;</code>

<code>            </code><code>byte</code><code>[] buf = </code><code>new</code> <code>byte</code><code>[4096];</code>

<code>            </code><code>do</code>

<code>            </code><code>{</code>

<code>                </code><code>size = fs.Read(buf, 0, buf.Length);</code>

<code>                </code><code>s.Write(buf, 0, size);</code>

<code>            </code><code>} </code><code>while</code> <code>(size &gt; 0);</code>

<code>            </code><code>s.Close();</code>

<code>            </code><code>fs.Close();</code>

<code>        </code><code>}</code>

<code>        </code><code>public</code> <code>static</code> <code>void</code> <code>gunZipFile(</code><code>string</code> <code>zipFilePath, </code><code>string</code> <code>filePath)</code>

<code>            </code><code>using</code> <code>(Stream inStream = </code><code>new</code> <code>GZipInputStream(File.OpenRead(zipFilePath)))</code>

<code>            </code><code>using</code> <code>(FileStream outStream = File.Create(filePath))</code>

<code>                </code><code>byte</code><code>[] buf = </code><code>new</code> <code>byte</code><code>[4096];</code>

<code>                </code><code>StreamUtils.Copy(inStream, outStream, buf);</code>

<code>            </code><code>}</code>

<code>        </code><code>static</code> <code>void</code> <code>Main(</code><code>string</code><code>[] args)</code>

<code>            </code><code>string</code> <code>src = </code><code>@"D:\test\in.txt"</code>

<code>            </code><code>string</code> <code>dest = </code><code>@"D:\test\out.gz"</code>

<code>            </code><code>string</code> <code>ori = </code><code>@"D:\test\ori.txt"</code>

<code>            </code><code>gZipFile(src, dest);</code>

<code>            </code><code>Console.WriteLine(</code><code>"gzip over!"</code><code>);</code>

<code>            </code><code>gunZipFile(dest, ori);</code>

<code>            </code><code>Console.WriteLine(</code><code>"gunzip over!"</code><code>);</code>

<code>            </code><code>Console.ReadKey();</code>

<code>    </code><code>}</code>

<code>}</code>

相关链接:

*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1706239如需转载请自行联系原作者

RQSLT