如何在c#中读取流时解压缩流

时间:2011-02-07 15:23:05

标签: c# .net

我在我的应用程序中读取了一个zip文件,我不想在读完所有内容后提取..

我想在阅读时提取它。

那么在我阅读文件时如何提取文件的字节流?

3 个答案:

答案 0 :(得分:4)

GZipStreamDeflateStream类是普通Stream对象的包装器。这意味着您可以在a)整个文件下载之前提取数据,并且b)不将所有数据加载到内存中。

这些在.NET 4中可用,否则您需要按照建议使用#ZipLib

编辑: 环顾四周之后,看起来#ZipLib绝对是前进的方式。相同的原则适用于这些类,因为它们是流,它们可以在文件被下载或通过网络读取时工作,并且它们不需要整个文件在内存中。我目前正在一个项目中使用它从http服务器打开zip文件,所以我已经看到它在行动!

答案 1 :(得分:1)

.NET基类库不包含用于传输.zip文件的类。看看SharpZipLib

答案 2 :(得分:1)

以下是使用#Zip库进行压缩/解压缩的各种示例。

http://wiki.sharpdevelop.net/SharpZipLib-Zip-Samples.ashx