如何在 C# 中解压缩多层 zip 文件
Posted
技术标签:
【中文标题】如何在 C# 中解压缩多层 zip 文件【英文标题】:How to unzip multi layered zip files in C# 【发布时间】:2020-04-08 19:54:10 【问题描述】:我知道如何解压缩压缩文件,这里有堆栈溢出问题的解决方案。但是我没有找到在 zip 文件中有多层 zip 文件的解决方案。
假设我有目录 c:\myfolder\grandfather.zip\father.zip\child.zip\familyimage.jpg。
我想计算这些 zip 文件下的所有文件。并将它们提取到另一个位置。
我如何在 C# .Net 中做到这一点
【问题讨论】:
像任何其他文件一样提取内部 zip 文件,然后打开它并提取其中的文件 【参考方案1】:您可以解压缩一次,循环浏览所有文件,如果任何提取的文件扩展名是 *.zip,那么您可以再次解压缩。因为听起来你知道如何解压缩一次,所以发布嵌套解压缩只是逻辑编码。 你可以使用这个方法:
public static void ExtractFile(string baseZipPath, string extractPath)
if (!Directory.Exists(extractPath))
Directory.CreateDirectory(extractPath);
ZipFile.ExtractToDirectory(baseZipPath, extractPath);
string[] nestedZipDirectories = System.IO.Directory.GetFiles(extractPath, "*.zip");
foreach (var nestedZipDirectory in nestedZipDirectories)
ZipFile.ExtractToDirectory(nestedZipDirectory, extractPath);
然后:
static void Main(string[] args)
ExtractFile(@"c:\myfolder\grandfather.zip", @"c:\myfolder2");
【讨论】:
以上是关于如何在 C# 中解压缩多层 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Azure Function 在 Azure 文件共享中解压缩文件?