Подтвердить что ты не робот

Open-source zip-библиотека для .NET?

Кто-нибудь знает хорошую библиотеку zip для открытого источника для .NET?

4b9b3361

Ответ 1

SharpZipLib

Что касается комментариев и других сообщений о внутренней реализации gzip, они не совпадают! GZip не создает заголовок, необходимый для архивации; это полезно только для "прошивки" одного файла или потока.

Надлежащие архивы zip содержат заголовок, в котором перечислены все сжатые файлы и где в сжатых данных они появляются, и поэтому вам нужно что-то, что делает заголовок. Это означает, что SharpZipLib, одна из многих коммерческих версий или использует что-то внешнее с привязками .NET, например 7zip.

Как ни странно, кто-то хочет это сказать: "Но я вижу файлы .gz в Linux все время!" - это всего лишь отдельные файлы, а .tar.gz не является исключением - tar - это файл архива. .gz - это сжатие архива.

Ответ 2

Пара комментариев.

  1. Не используйте J # runtime. J # был прекращен Microsoft. Будущая поддержка сомнительна. Кроме того, вся среда выполнения J # - большой глоток, когда вам нужна только поддержка ZIP.
  2. GzipStream в System.IO.Compression, часть библиотеки базовых классов .NET начиная с .NET 2.0, предоставляет потоковый интерфейс для сжатия IETF RFC-1952. Это нормально для сжатия, хотя степень сжатия не является оптимальной, и это значительно расширит данные, которые были ранее сжаты. Об этой ошибке сообщили в Microsoft, но она, очевидно, была закрыта. Существует также DeflateStream, который похож, но для RFC 1951. Существует распространенное заблуждение, что GZipStream делает zip файлы. Не правда. Ни один из этих двух не делает почтовые файлы.
  3. Есть System.IO.Packaging.ZipPackage. Он работает, но предназначен и предназначен главным образом для упаковки файлов MS Office 2007 (.docx,.xslx и .pptx). Это неудобно для zip файлов и не поддерживает множество функций ZIP, таких как шифрование.
  4. Если вам нужен гибкий способ создания и чтения zip файлов в .NET, вам нужна сторонняя библиотека.

DotNetZip - хороший сторонний вариант. Бесплатный, с открытым исходным кодом, активно поддерживаемый, простой в использовании, небольшой, хороший набор функций. Он поставляется в виде единой сборки - это полностью управляемый код. Работает как на Compact Framework, так и на обычном .NET Framework. Предварительным требованием является .NET 2.0.

DotNetZip также включает библиотеку ZLIB с такими классами, как {Zlib, GZip, Deflate} Stream. Они сравнимы со встроенными в .NET, но включают возможность устанавливать уровни сжатия, а на более высоких уровнях они сжимают намного эффективнее, чем встроенные классы. ZlibStream выполняет сжатие RFC 1950.

DotNetZip поддерживает ZIP64, пароли, шифрование AES, потоки, SFX и Unicode. Каждый, кто его использует, говорит, что его гораздо проще использовать, чем SharpZipLib. Там хороший файл справки (.chm) и множество примеров кода.

DNZ CHM

Ответ 3

Библиотека DotNet Zip Library (Ionic.Zip.dll) очень проста в использовании. Я чувствую, что это проще реализовать, чем SharpZip.

http://www.codeplex.com/DotNetZip

Ответ 4

Попробуйте проверить 7-zip. Это открытый исходный код и моя программа fav zip. очень kewl. использует также несколько ядер.

.NET SDK доступен здесь.

Ответ 5

**** Но ребята .NET уже поддерживают open source zip.... ****

http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx

Это совместимо с библиотеками GZIP. Я использовал это для сжатия данных С# и распаковки по сети в приложении на С++. Прекрасно работает.

Тони

Ответ 6

Посмотрите здесь, если хотите 7-zip с С#. Это был вопрос в другом посте в SO. Это может помочь вам.

Ответ 7

вы также можете проверить J # redist. Он повторно реализует java.util.zip. Статья