Для zip файлов, DotNetZip прекрасно работает.Для поддержки zip-файлов требуется только одна сборка.
Для gzip файлов вы можете использовать потоки в пространстве имен System.IO.Compression или DotNetZip .Обратите внимание, что если у вас есть файлы *.tar.gz
или *.tgz
, вам понадобится что-то, что говорит tar (1) или tar (5) .
Для zlib сжатые данные, DotNetZip снова ваш друг. zlib использует алгоритм Deflate.Я не уверен, что zlib 6 и System.IO.Compression.DeflateStream совместимы.
Существуют другие библиотеки, которые поддерживают эти форматы сжатия, номногие из них, я считаю, являются обертками вокруг неуправляемого кода.Хорошо это или плохо, зависит от ваших требований.
DotNetZip - это чистый управляемый код.Мои тесты показывают, что он работает примерно на той же скорости, что и реализации zip / unzip с открытым исходным кодом *1041* Info-Zip.Полученные сжатые файлы не являются байтовыми, но они совместимы и имеют приблизительно одинаковые коэффициенты сжатия.
Отредактировано в примечание: DotNetZip используется для жизни в Codeplex.Кодекс был закрыт.Старый архив по-прежнему доступен в Codeplex .Похоже, что код перенесен на Github: