Библиотека бесплатного сжатия для С#, которая поддерживает 7zip (LZMA)
У меня есть программа (написанная на С#), которая напрямую считывает/записывает свои данные (прямой доступ к файлам без сервера) в файлы базы данных firebird. Для лучшего обмена я хочу (un) сжимать их при импорте/экспорте для лучшего обмена через Интернет без необходимости внешней программы (un) сжимать их.
Я знаю # ziplib, который поддерживает Zip, GZip, Tar и BZip2.
Какие еще бесплатные библиотеки сжатия для С# вы знаете?
Есть ли библиотека .NET, которая поддерживает LZMA, поэтому я могу читать/записывать файлы ".7z"?
Ответы
Ответ 1
Есть хорошая статья, написанная Питером Бромбергом:
7Zip (LZMA) сжатие в памяти с помощью С#
Показывает простой класс С# SevenZip.Compression.Lzma.SevenZipHelper
для включения высокой степени сжатия объектов в памяти с помощью С#. Добавляет новый класс LZMA Cookie Compression формата 7Zip к ранее опубликованной утилите CookieCompression.
Ответ 2
7-zip имеет бесплатный исходный код, общедоступный С# SDK для алгоритма LZMA:
http://www.7-zip.org/sdk.html
Ответ 3
Вы можете попробовать SevenZipSharp
Ответ 4
Похоже, это довольно известный факт, но библиотека .NET включает API упаковки/сжатия
Ответ 5
Если вы пишете отдельные файлы, вы можете просто рассматривать его как поток и использовать встроенный GZipStream
/DeflateStream
(хотя в некоторых тестах я сделал #ZipLib, внедрил MS-предложение для обоих коэффициентов и скорости). Или есть встроенная поддержка zip где-то в рамках. Однако я не знаю о LZMA.
Ответ 6
Остерегайтесь: GZipStream имеет ограничение по размеру 4Gb