Что лучший/самый легкий путь состоит в том, чтобы создать архив ZIP в.NET?

33
задан Peter Mortensen 23 February 2010 в 10:01
поделиться

6 ответов

Я всегда использовал , SharpZipLib

Забыл почему часть: Главным образом, потому что его вокруг в течение долгого времени. Это хорошо документируется и имеет интуитивный API. Плюс он - открытый исходный код, если Вы в тот тип вещи.

23
ответ дан 27 November 2019 в 17:57
поделиться

Я нашел Библиотека DotNetZip быть этим самым легким способом работать с zip-файлами. SharpZipLib является намного большим мощным и гибким решением.

16
ответ дан 27 November 2019 в 17:57
поделиться

DotNetZip очень прост в использовании. Мне нравится он, потому что этим полностью управляют - никакое требуемое взаимодействие оболочки. Модель программирования является более простой и более чистой, чем это для оболочки. Также это более просто, чем SharpZipLib, а также Упаковочные классы, добавленные в.NET 3.0. Это является свободным, маленьким, активно сохраняемое.

намного лучше, чем опция J#, что один предлагаемый плакат - J# является огромным временем выполнения и гигантской таблеткой для глотания для получения просто поддержки ZIP. Также поддержка J# прекращается. Вероятно, не хорошая идея представить новые зависимости от J#.

Пример кода для DotNetZip:

  try
  {
      using (ZipFile zip = new ZipFile(args[0], System.Console.Out))
      {
          zip.AddDirectory(args[1]); // recurses subdirectories
          zip.Save();
      }
  }
  catch (System.Exception ex1)
  {
      System.Console.Error.WriteLine("exception: " + ex1);
  }

DotNetZip работает с.NET v2.0, 3.0, 3.5, а также Компактная Платформа v2.0 и 3.5. Это делает zip-файлы, имена файлов Unicode, комментарии, пароли. Это делает ZIP64, а также Самораспаковывающиеся архивы. Это - FAST.Попробуйте.

16
ответ дан 27 November 2019 в 17:57
поделиться

Классы GZipStream и DeflateStream под Системой. Пространство имен IO.Compression делает довольно легким архивировать вещи.

ОБНОВЛЕНИЕ: Комментарии правильно указывают, что эти классы не позволяют Вам управлять zip-файлом. Однако J# dlls содержат необходимую функциональность в java.util и java.io пространствах имен. Для получения дополнительной информации посмотрите статья Code Project dmihailescu, который детализирует их использование и предоставляет код кода.

2
ответ дан 27 November 2019 в 17:57
поделиться

Никто не упомянул компонент Zip Xceed. Я использовал его прежде, и это работало превосходное на создание zip-файлов и сжатие потоков данных. Я настоятельно рекомендую его, но может быть компромисс лицензионного сбора.

2
ответ дан 27 November 2019 в 17:57
поделиться

Так как Вы нацелены на Платформу 3.5, я пошел бы с System.IO.Packaging. Это - библиотека, специально разработанная для архивирования, и идет с платформой, таким образом, даже нет дополнительного DLL, необходимого продукту. Пример использования является зверским, все же.

Используя оболочку не рекомендуется. Во-первых, это только работало бы над Windows XP и выше. Но даже если Вы не заботитесь, о котором, это - ловушки, являются довольно многочисленными (я сделал это прежде, но только потому, что у меня действительно не было выбора).

, если бы Вы не нацелены 3.5, я использовал бы SharpZipLib . Это - вполне хорошая библиотека, и даже если Вы используете 3.5, Вы могли бы рассмотреть это.

1
ответ дан 27 November 2019 в 17:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: