从不可搜索的流中进行ZipArchive读取,而不缓冲到内存中

问题描述 投票:0回答:1

是否有一种方法可以从网络流中读取zip文件而不将其完全缓存在内存中?我希望避免在开始处理文件内容之前下载整个文件,以节省处理时间。

我正在使用.Net Core 3.1

c# .net-core ziparchive
1个回答
0
投票

ZipArchive类,如here所示,如果无法找到该流,则会将其缓冲到内存中。因此,避免将大的zip文件缓冲到内存中的唯一方法是首先将文件下载到本地文件系统,然后打开一个FileStream(可搜索)。

这是因为zip目录是文件的结尾,该目录包含所有内容及其位置的列表,位于文件的末尾。因此,该类需要在zip的不同部分之间跳转以提取其内容。

zip anatomy

© www.soinside.com 2019 - 2024. All rights reserved.