【发布时间】:2013-08-31 15:26:21
【问题描述】:
我有一个很大的 ZIP 文件,其中包含许多目录以及数以万计的小文件,每个目录都需要读取。
使用 7-Zip 从 ZIP 中提取它们的过程需要很长时间。在 C# 中,我可以先将整个 ZIP 提取到某个位置,然后再对其进行操作,但理想情况下,我只想一次将一个文件从 ZIP 读取到内存中,而不必将其提取到磁盘上的某个位置。
我查看了原生 C# ZIP 实用程序以及 DotNetZip 和 SharpZipLib,但没有看到任何与我所追求的直接相关的内容。
这可以做到吗?与一开始的简单提取相比,它实际上是否会提供任何性能优势?
【问题讨论】:
-
您可以使用任何这些库以
Stream的身份打开 Zip。 -
内存比驱动器 IO 快得多,因此您应该会看到流式传输而不是提取带来的显着性能优势。