DotNetZip не сжимает мою строку - PullRequest
       12

DotNetZip не сжимает мою строку

1 голос
/ 08 декабря 2010

Я использую DotNetZip версии 1.8.4.5. Я не могу обновить в это время.

Я отправляю большой список в мое клиентское приложение с моего сервера. Я сериализую свой список в строковую переменную (contentsAsString). Затем я сжимаю ContentAsString в MemoryStream и передаю байтовый массив обратно моему клиенту. Длина моего сжатого байтового массива составляет 2087188 (1,99 МБ).

Если я возьму значение contentAsString и сохраню его в текстовом файле, его размер составит 1,99 МБ (аналогично описанному выше). Если я использую Сжатие Windows и сжимаю текстовый файл, в результате получается zip-файл размером 132 КБ.

Почему мой MemoryStream не сжимается до 132 КБ? Вот код, который я использую:

   private byte[] zipContents<T>(List<T> contents)
    {

        using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
        {
            using (MemoryStream ms = new MemoryStream())
            {
                string contentsAsString = Utility.SerializeListToString<T>(contents);
                zip.AddEntry("stream.zip", null, contentsAsString);
                zip.Save(ms);
                return ms.ToArray();
            }

        }

    }

Ответы [ 3 ]

2 голосов
/ 08 декабря 2010

Обратите внимание, что если вам также подходят сжатия GZIP или Deflate, .NET Framework (2.0+) предоставляет сжатия потоков GZIP и Deflate для потоков (находится в пространстве имен System.IO.Compression )

2 голосов
/ 11 декабря 2010

Как я уже упоминал в комментарии, использование последней версии 1.9 DotNetZip сжималось, как и ожидалось, со мной. Не удалось найти 1.8.4.5 для тестирования, поэтому я думаю, что лучше всего обновить.

Спасибо.

0 голосов
/ 08 декабря 2010

Я не знал о такой классной библиотеке, но, глядя на их ссылки, я нашел кое-что о методе сжатия.

http://cheeso.members.winisp.net/DotNetZipHelp/html/f52f1f79-0eed-92c8-5938-89ccfc77ca53.htm

Помогает ли это вообще?

Также я нашел это: http://www.java2s.com/Open-Source/CSharp/Development/DotNetZip/Ionic/Zip/Tests/Compatibility.cs.htm

...