c# - 在不提取 C# 的情况下读取 ZIP

标签 c# .net zip dotnetzip

我有一个很大的 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/

相关文章:

c# - 使用线程池对后台线程进行异常处理

c# - 带条件间距的 string.format 效率

.net - 为什么这两条sql语句会死锁? (死锁图+详细信息包括在内)

c# - .Net 4.5.1 ConcurrentDictionary TryRemove() 方法是否释放分配的内存?

python - 在 python 中解压 z01、z02、zip 文件

vb.net - FTP 下载大于 2GB 的文件 (VB.net)

c# - 如何在 Zebra 打印机上使用 windows-1250 代码页进行打印?

c# - 如何使用 MongoDB 和 C# 使用另一个字段的值更新文档?

c# - 将数据从 Sql Server 推送到桌面应用程序

java - 如何在 Java 中将 zip 文件访问到 zip 文件