ICSharpCode.SharpZipLib Метод сжатия не поддерживается PKZIP

У меня проблема с zip-файлом, созданным в старой версии PKZIP® Command Line для Windows версии 4 2000 года. Я использую ICSharpCode.SharpZipLib для извлечения файла. Windows не имеет проблем, чтобы открыть файл в проводнике. Вот код:

private void Extract(string zipFile, string outputfolder)
{
  try
  {
    _logger.InfoFormat("Extracting {0}", zipFile);
    System.IO.Stream stream = new System.IO.FileStream(zipFile, System.IO.FileMode.Open);
    ZipInputStream zipInputStream = new ZipInputStream(stream);
    ZipEntry zipEntry = zipInputStream.GetNextEntry(); //Throws Compression error exception
    while (zipEntry != null)
    {
      String entryFileName = zipEntry.Name;
      _logger.InfoFormat("Entry-Filename: {0}", entryFileName);

      byte[] buffer = new byte[4096];
      String fullZipToPath = Path.Combine(outputfolder, entryFileName);
      string directoryName = Path.GetDirectoryName(fullZipToPath);
      if (directoryName.Length > 0)
      {
        Directory.CreateDirectory(directoryName);
      }

      using (FileStream streamWriter = File.Create(fullZipToPath))
      {
        StreamUtils.Copy(zipInputStream, streamWriter, buffer);
      }
      zipEntry = zipInputStream.GetNextEntry();
    }
  }
  catch (Exception ex)
  {
    _logger.Error("Error during extraction",ex);
    throw;
  }
}

Есть идеи, как решить эту проблему?

2 ответа

У меня была такая же проблема при распаковке zip-файла, созданного с помощью 7-zip.

Я изменил его с Deflate64 на Deflate, и тогда все заработало.

Обновление до версии 1.3.3 решило проблему.

Другие вопросы по тегам