Кто-нибудь знает хорошую библиотеку zip для открытого источника для .NET?
Open-source zip-библиотека для .NET?
Ответ 1
Что касается комментариев и других сообщений о внутренней реализации gzip, они не совпадают! GZip не создает заголовок, необходимый для архивации; это полезно только для "прошивки" одного файла или потока.
Надлежащие архивы zip содержат заголовок, в котором перечислены все сжатые файлы и где в сжатых данных они появляются, и поэтому вам нужно что-то, что делает заголовок. Это означает, что SharpZipLib, одна из многих коммерческих версий или использует что-то внешнее с привязками .NET, например 7zip.
Как ни странно, кто-то хочет это сказать: "Но я вижу файлы .gz
в Linux все время!" - это всего лишь отдельные файлы, а .tar.gz
не является исключением - tar - это файл архива. .gz
- это сжатие архива.
Ответ 2
Пара комментариев.
- Не используйте J # runtime. J # был прекращен Microsoft. Будущая поддержка сомнительна. Кроме того, вся среда выполнения J # - большой глоток, когда вам нужна только поддержка ZIP.
- GzipStream в System.IO.Compression, часть библиотеки базовых классов .NET начиная с .NET 2.0, предоставляет потоковый интерфейс для сжатия IETF RFC-1952. Это нормально для сжатия, хотя степень сжатия не является оптимальной, и это значительно расширит данные, которые были ранее сжаты. Об этой ошибке сообщили в Microsoft, но она, очевидно, была закрыта. Существует также DeflateStream, который похож, но для RFC 1951. Существует распространенное заблуждение, что GZipStream делает zip файлы. Не правда. Ни один из этих двух не делает почтовые файлы.
- Есть System.IO.Packaging.ZipPackage. Он работает, но предназначен и предназначен главным образом для упаковки файлов MS Office 2007 (.docx,.xslx и .pptx). Это неудобно для zip файлов и не поддерживает множество функций ZIP, таких как шифрование.
- Если вам нужен гибкий способ создания и чтения 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) и множество примеров кода.
Ответ 3
Библиотека DotNet Zip Library (Ionic.Zip.dll) очень проста в использовании. Я чувствую, что это проще реализовать, чем SharpZip.
Ответ 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. Статья