Sharpzlib用简历读取ZipInputStream

时间:2012-09-11 15:59:06

标签: c# unzip resume sharpziplib zipinputstream

我正在尝试实现的目的是使应用程序能够提取大型远程文件(来自ftp或http),而无需完全下载它,并且可以在网络出现故障时恢复提取。

遵循此示例

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

我能够提取文件但是在网络出现故障时我无法恢复提取。 我试过使用ZipInputStream.Skip(length),其中“length”是本地donloaded / unzipped文件的大小,但它似乎不起作用。它抛出异常,如:

ICSharpCode.SharpZipLib.dll中发生'ICSharpCode.SharpZipLib.SharpZipBaseException'类型的第一次机会异常 破碎的未压缩块

任何想法?是否有可能实现这个目标?

1 个答案:

答案 0 :(得分:0)

在他们的论坛上得到了Sharpzlib团队的答案。

这样做很有可能。很简单。实例化一个新的ZipInputStream时,你需要传递一个"专门的"将包装FTP连接的流和由FtpWebResponse获取的流。

sharpzlib团队在维基站点上添加了这个例子。看看最后一个教程

https://github.com/icsharpcode/SharpZipLib/wiki/Zip-Samples