我正在使用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