gpt4 book ai didi

c# - DotNetZip - 在调用 Save(stream) 之前计算最终的 zip 大小

转载 作者:行者123 更新时间:2023-11-30 21:16:07 25 4
gpt4 key购买 nike

使用 DotNetZip 时,是否可以在调用 Save(stream) 之前获取最终的 zip 文件大小?我有一个网站,用户将在其中下载相当大的 zip 文件(超过 2 gig),我希望能够将文件流式传输给用户,而不是将整个文件缓冲到内存中。像这样的事情......

response.BufferOutput = false;
response.AddHeader("Content-Length", ????);

这可能吗?

最佳答案

如果流是同质的,您可能会浪费一些时间来压缩前面的“小”部分,计算压缩率并从中推断。

如果您打算设置一个内容长度 header 或类似的东西,则只能在您 (1) 编写一个临时文件时完成(如果存在连接问题的任何风险并且客户端无论如何都请求特定 block ,则建议这样做) (2) 可以将整个文件保存在内存中(大概只适用于内存充足的64位系统)

当然,您可能会浪费大量资源并仅将流压缩两次,但我希望您同意这很愚蠢。

关于c# - DotNetZip - 在调用 Save(stream) 之前计算最终的 zip 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5402497/

25 4 0