gpt4 book ai didi

c# - 无需完整下载即可读取 zip 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:05:53 25 4
gpt4 key购买 nike

是否可以在不完全下载 .ZIP 文件的情况下阅读其内容?

我正在构建一个爬虫,我不想为了索引它们的内容而下载每个 zip 文件。

谢谢;

最佳答案

棘手的部分是识别中央目录的开始,它出现在文件的末尾。由于每个条目都是相同的固定大小,因此您可以从文件末尾开始进行一种二进制搜索。二进制搜索试图猜测中央目录中有多少条目。从一些合理的值 N 开始,并在末尾检索文件的那部分 - (N*sizeof(DirectoryEntry))。如果该文件位置不以中央目录条目签名开始,则 N 太大 - 减半并重复,否则,N 太小,加倍并重复。像二进制搜索一样,该过程维护当前的上限和下限。当两者相等时,您就找到了 N 的值,即条目数。

您访问网络服务器的次数最多为 16 次,因为条目不能超过 64K。

这是否比下载整个文件更有效取决于文件大小。您可能会在下载之前请求资源的大小,如果它小于给定的阈值,则下载整个资源。对于大型资源,如果阈值设置得高,请求多个偏移量会更快,并且总体上对网络服务器的负担更小。

HTTP/1.1 允许下载资源范围。对于 HTTP/1.0,您别无选择,只能下载整个文件。

关于c# - 无需完整下载即可读取 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3258384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com