На моем сервере я ожидаю получить некоторые сжатые документы JSON через TCP. Вот метод, который пытается распаковать полученную папку:
public static void Unzip(this Stream zippedFolderStream)
{
var zipArchive = new ZipArchive(zippedFolderStream);
ZipArchiveEntry[] archiveEntries = zipArchive.Entries.ToArray();
Console.WriteLine($"Received {archiveEntries.Length} documents.");
foreach (ZipArchiveEntry entry in archiveEntries)
{
// Do stuff.
}
}
Если в zip-папке , а не содержатся какие-либо вложенные папки, код работает без сбоев - выполняется все, что заменено на // Do stuff.
в приведенном выше примере.
Однако, если в заархивированной папке содержатся вложенные папки (которые сами не заархивированы), я сталкиваюсь с этой ошибкой:
System.IO.InvalidDataException
HResult=0x80131501
Message=Number of entries expected in End Of Central Directory does not correspond to number of entries in Central Directory.
Source=System.IO.Compression
StackTrace:
at System.IO.Compression.ZipArchive.ReadCentralDirectory()
at System.IO.Compression.ZipArchive.get_Entries()
at TcpServer.StreamExtensions.Unzip(Stream zippedFolderStream) in C:\Users\Me\source\repos\TcpServer\TcpServer\StreamExtensions.cs:line 16
... etc.
У меня такой вопрос: как я могу просмотреть все документы JSON внутри сжатой папки, даже если они хранятся во вложенных папках?