c # ищет API для чтения заголовков 7z

Есть ли API на основе C # для 7zip (7z), который поддерживает возможность чтения его заголовка для получения информации CRC для каждого файла в сжатом архиве? Все, что я рассмотрел, требует, чтобы вы распаковали файл. Я пишу приложение, которое сравнивает CRC файлов в сжатой папке с отдельным списком.

В настоящее время я использую DotNetZip для zip-файлов, и он отлично работает. К сожалению, у него нет поддержки .7z.

РЕДАКТИРОВАТЬ: исключение создается при вызове ZipFile.Read ()

{Ionic.Zip.ZipException: Cannot read that as a ZipFile ---> Ionic.Zip.BadReadException:   Bad signature (0xAFBC7A37) at position  0x00000000
   at Ionic.Zip.ZipEntry.ReadHeader(ZipEntry ze, Encoding defaultEncoding)
   at Ionic.Zip.ZipEntry.ReadEntry(ZipContainer zc, Boolean first)
   at Ionic.Zip.ZipFile.ReadIntoInstance_Orig(ZipFile zf)
   at Ionic.Zip.ZipFile.ReadIntoInstance(ZipFile zf)
   --- End of inner exception stack trace ---
   at Ionic.Zip.ZipFile.ReadIntoInstance(ZipFile zf)
   at Ionic.Zip.ZipFile.Read(String fileName, TextWriter statusMessageWriter, Encoding encoding, EventHandler`1 readProgress)
   at Ionic.Zip.ZipFile.Read(String fileName)

...


person Don H    schedule 23.07.2012    source источник
comment
возможный дубликат Бесплатная библиотека сжатия для C #, поддерживающая 7zip ( LZMA)   -  person stakx - no longer contributing    schedule 23.07.2012
comment
Не совсем. К сожалению, с помощью этого API нет простого способа прочитать информацию CRC из заголовков.   -  person Don H    schedule 24.07.2012


Ответы (1)


Звучит как дублированный пост ... вот некоторые ответы по этой ссылке на StackOverFlow Чтение файлов 7z

Это должно сработать для вас, если вы используете DotNetZip, попробуйте этот пример ниже

using (ZipFile zip = ZipFile.Read(ExistingZipFile))
{
  foreach (ZipEntry ze in zip)
  {
    if (header)
    {
      System.Console.WriteLine("Zipfile: {0}", zip.Name);
      if ((zip.Comment != null) && (zip.Comment != "")) 
        System.Console.WriteLine("Comment: {0}", zip.Comment);
      System.Console.WriteLine("\n{1,-22} {2,8}  {3,5}   {4,8}  {5,3} {0}",
                               "Filename", "Modified", "Size", "Ratio", "Packed", "pw?");
      System.Console.WriteLine(new System.String('-', 72));
      header = false;
    }
    System.Console.WriteLine("{1,-22} {2,8} {3,5:F0}%   {4,8}  {5,3} {0}",
                             ze.FileName,
                             ze.LastModified.ToString("yyyy-MM-dd HH:mm:ss"),
                             ze.UncompressedSize,
                             ze.CompressionRatio,
                             ze.CompressedSize,
                             (ze.UsesEncryption) ? "Y" : "N");

  }
}
person MethodMan    schedule 23.07.2012
comment
Я уже видел этот пост. К сожалению, ни один из этих API кажется не имеет вызовов для чтения CRC для каждого файла в сжатом архиве. - person Don H; 23.07.2012
comment
Я больше искал код 7ZipStream. google.com/p/7zipstream/source/browse/trunk/_Documentation/ На шаге 5 из шагов по использованию декодера 7z я пришел к примеру с элементами списка. Интересно, есть ли что-нибудь в CFileItem. - person Don H; 23.07.2012
comment
если вы используете DotNetZip, я собираюсь опубликовать что-то, что может сработать для вас ... дайте мне знать, если это что-то, что может сработать - person MethodMan; 23.07.2012
comment
Я думал, DotNetZip не поддерживает файлы 7z? Однако я уже использую ZipEntry API для файлов .zip. - person Don H; 23.07.2012
comment
Я нашел пример, который выглядит так, как будто DotnetZip будет работать ... У меня он не установлен на моем локальном компьютере, но на рабочем компьютере я устанавливаю ... так что не могу его протестировать, просто попробуйте ... пройдите через код и посмотрите, не это то, что вы ищете, или если фрагмент кода помогает - person MethodMan; 23.07.2012
comment
Я получаю исключение. Не могу прочитать это как ZipFile. Это то, что заставило меня поверить, что DotNetZip не поддерживает 7z. - person Don H; 24.07.2012
comment
Я должен упомянуть, что это исключение генерируется во время вызова ZipFile.Read () - person Don H; 24.07.2012
comment
Вставил мое подробное исключение выше в свой первый пост - person Don H; 24.07.2012
comment
Привет, у меня такая же проблема, вы нашли решение для извлечения этих файлов? - person Mouadh; 02.10.2012