Лучший класс сжатия Платформы.NET?

Да, я знаю GZipStream, или DeflateStream является общими в Платформе.NET, которые обрабатывают сжатие/распаковку.

Я хочу иметь функции сжатия/распаковки в своей программе, но

  1. Я желаю Платформе.NET C# один, не сторонний открытый исходный код. Я не могу использовать из-за тех ограничений авторского права в моей программе.

  2. GZipStream и DeflateStream не так хороши. для, например, GZipStream сжимают файл до 480 КБ, в то время как 7Zip сжимают тот же файл до размера 57 КБ.

Microsoft имеет другие хорошие методы сжатия???

Спасибо

7
задан Jack 10 May 2010 в 13:32
поделиться

4 ответа

GZipStream и DeflateStream специально предназначены для сжатых потоков, а не для общего сжатия файлов для хранения.

Кроме этих классов, сжатие не встроено в .NET. Если вы хотите получить высококачественное сжатие, вам придется обратиться к сторонним библиотекам. Посмотрите http://www.7-zip.org/sdk.html для библиотеки 7zip с открытым исходным кодом.

6
ответ дан 7 December 2019 в 03:12
поделиться

вы также можете использовать ZLib с открытым исходным кодом (http://www.zlib.net/) с PInvoke, или использовать обертку для него (я использовал zlib.net - http://www.componentace.com/zlib_.NET.htm - но я думаю, что у него были некоторые ошибки). Это менее удобно, чем управляемые библиотеки, но более эффективно, чем DeflateStream/GZipStream (которые одинаковы, за исключением дополнительного CRC в GZipStream).

0
ответ дан 7 December 2019 в 03:12
поделиться

У меня нет статистических данных о степени сжатия, но я много лет успешно использовал библиотеку SharpZipLib .

1
ответ дан 7 December 2019 в 03:12
поделиться

Существует управляемая обертка для 7zip. Лицензия - LGPL, поэтому вы можете использовать ее в проектах с закрытым исходным кодом. Я не знаю, подходит ли она под ваши лицензионные требования, поскольку вы их не указали.

http://sevenzipsharp.codeplex.com/

2
ответ дан 7 December 2019 в 03:12
поделиться
Другие вопросы по тегам:

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