使用AddEntry时DotNetZip内存使用情况

时间:2019-06-14 15:32:35

标签: .net vb.net zip out-of-memory dotnetzip

我正在使用DotNetZip将文件写入zip文件中,所以选择了此工具,因为它解决了其他工具(如ZipArchive)无法解决的一些特定问题。

我要根据要添加的数据是否已经在磁盘上,通过ZipFile.AddEntry()和ZipFile.AddFile()将数据保存到文件中。 AddFile()效果很好,但是AddEntry()导致DotNetZip ZipFile对象内的内存使用增加。这最终会导致内存不足异常。定期调用Save()不能解决问题(我希望它会刷新缓冲区)。

使用AddEntry()时如何防止内存使用量不断增加?

Using zipFile = New ZipFile(exportFileName)
    zipFile.Password = password
    zipFile.Encryption = EncryptionAlgorithm.WinZipAes256

    For Each currData in dataToSave
        Dim entryName = currData.Name
        Dim entryData = GetDataFromSource(currData.Name)
        zipFile.AddEntry(entryName, entryData)
    Next

    zipFile.Save()
End Using

0 个答案:

没有答案