Вы можете разархивировать его один раз, l oop по всем файлам, и если какое-либо извлеченное расширение файла * .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");
}