Преобразовать поток из файла в архиве в байт [] - PullRequest
0 голосов
/ 29 ноября 2018

В Net Core 2.1 я пытаюсь читать файлы из ZIP-архива.

Мне нужно преобразовать содержимое каждого файла в байт [], поэтому у меня есть:

using (ZipArchive archive = ZipFile.OpenRead("Archive.zip")) {

  foreach (ZipArchiveEntry entry in archive.Entries) {

    using (Stream stream = entry.Open()) {

      Byte[] file = new Byte[stream.Length];

      stream.Read(file, 0, (Int32)stream.Length);

    }

  }

}

КогдаЯ запускаю его и получаю сообщение об ошибке:

Exception has occurred: CLR/System.NotSupportedException
An exception of type 'System.NotSupportedException' occurred in System.IO.Compression.dll but was not handled in user code: 
'This operation is not supported.' at System.IO.Compression.DeflateStream.get_Length()

Как мне получить содержимое в байт [] для каждого файла?

1 Ответ

0 голосов
/ 29 ноября 2018

Попробуйте сделать что-то вроде этого:

using (ZipArchive archive = ZipFile.OpenRead("archieve.zip")) 
{

   foreach (ZipArchiveEntry entry in archive.Entries) 
   {
      using (Stream stream = entry.Open()) 
      {
         byte[] bytes;
         using (var ms = new MemoryStream()) 
         {
            stream.CopyTo(ms);
            bytes = ms.ToArray();
         }
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...