开发者

Ionic.Zip (DotNetZip) hangs with in save method with IO.MemoryStream

I'll try to create an zip file with the DotNetZip-Libary with 106 Images (675MB) with the following code:

Public Function GetZip() As Byte()
    Dim zip As New Ionic.Zip.ZipFile(String.Format("{0}.zip", Me.GallerySystemName))
    AddHandler zip.SaveProgress, AddressOf SaveProgress

    For Each img In Me.Image开发者_开发知识库s
        zip.AddFile(img.OriginalFile.FullName, "")
    Next

    Dim bytZip As Byte()

    Using ms As New MemoryStream
        zip.Save(ms)
        bytZip = ms.ToArray
    End Using

    Return bytZip
End Function

When I run this code, the execution stops usally at image 40 (sometimes earlier) without any exeption. Nothing happens. I tried to save the zip directly to a file. It works.

Any ideas?

Jan


SET the zip object property ParallelDeflateThreshold to -1 just before saving the zip file

zip.ParallelDeflateThreshold = -1



REF: http://forums.codeguru.com/showthread.php?534177-Issue-with-DotNetZip-ionic.zip-class-hanging-on-save


It's been almost 2 years since your question, so I doubt this will help but I just encountered the same problem in v1.9.1.8.

I worked around it by increasing the BufferSize and CodecBufferSize ZipFile properties to 1MB each.

I can't download the DotNetZip source because of filters at work but here is a very-likely-related comment from http://dotnetzip.codeplex.com/releases/view/68268

There is a pretty major bug in the code. I am working to figure it out. Another chap logged it before me: Deadlock in ParallelDeflateOutputStream.EmitPendingBuffers The zip hangs. End-of-day I will have to rip this code out and start over with a new library. I need to call my last job and give them a head's up b/c I used this library at my last job. They will likely have to rip the code out too. by jnarkiewicz on May 30 at 6:31 PM

So if this is indeed the problem, increasing the size of those buffers just lowers the likelihood of the deadlock occurring and is not an ideal solution.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜