我有一个很大的 ZIP 文件,包含许多目录和数以万计的小文件,每个文件都需要读取。
使用 7-Zip 从 ZIP 中提取它们的过程需要相当长的时间。在 C# 中,我可以先在某处提取整个 ZIP,然后再对其进行操作,但理想情况下,我希望一次只将一个文件从 ZIP 读取到内存中,而不必将其提取到磁盘上的某个位置。
我看过 native C# ZIP 实用程序以及 DotNetZip 和 SharpZipLib,但没有看到任何与我所追求的直接相关的内容。
这可以做到吗?与最初的简单提取相比,它实际上会提供任何性能优势吗?
最佳答案
using (ZipArchive zipFile = ZipFile.OpenRead(zipPath))
{
foreach(ZipArchiveEntry zip in zipFile.Entries)
{
System.Console.WriteLine("Zipfile: {0}", zip.FullName);
System.Console.WriteLine("Zipfile: {0}", zip.Length);
}
}
关于c# - 在不提取 C# 的情况下读取 ZIP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18489877/