Есть ли встроенная библиотека zip в .NET 3.5? - PullRequest
31 голосов
/ 27 февраля 2009

Есть ли встроенная библиотека zip в .NET 3.5?

Если нет, то какие популярные zip-библиотеки с открытым исходным кодом.

Ответы [ 8 ]

32 голосов
/ 27 февраля 2009

РЕДАКТИРОВАТЬ: см. Примечание в комментариях - SharpZipLib теперь не поддерживается, и вы, вероятно, хотите избежать этого.

Открытый исходный код: # ZipLib

Я считаю, что классы в пространстве имен System.IO.Compression хороши для сжатия / распаковки одного потока данных, но в инфраструктуру не встроено ничего, чтобы справиться с реальными zip-файлами.

РЕДАКТИРОВАТЬ: Как отмечается в ответе Антса, есть System.IO.Packaging.ZipPackage , но он, безусловно, выглядит как будто он действительно предназначен для использования в WPF и не ужасно удобно использовать для общей обработки zip-файлов. Хотя стоит посмотреть. Я не знал об этом раньше, хотя ... определенно стоит расследовать.

22 голосов
/ 03 марта 2009

Нет встроенной библиотеки. Есть варианты с открытым исходным кодом.

DotNetZip - это единица. Простой, легкий в использовании. Он имеет хорошие функции: шифрование AES, обычное шифрование, потоки, ZIP64, комментарии к файлам, Unicode, события прогресса и многое другое И это бесплатно и с открытым исходным кодом.

Вот пример кода.

    // extract all Photoshop files larger than 100mb
    using (ZipFile zip1 = ZipFile.Read(ZipFileName))
    {
        var LargePhotoShopFiles = zip1.SelectEntries("name = *.psd  and size > 100mb");
        foreach (ZipEntry e in LargePhotoShopFiles)
        {
            if (e.UsesEncryption)
                e.ExtractWithPassword("unpackDirectory", "VerySecret!");
            else 
                e.Extract("unpackDirectory");
        }
    }
10 голосов
/ 27 февраля 2009

Проверьте класс System.IO.Packaging.ZipPackage.

6 голосов
/ 27 февраля 2009

7Zip поможет и доступен на нескольких языках

4 голосов
/ 27 февраля 2009
1 голос
/ 29 апреля 2014

System.IO.Compression имеет класс ZipArchive с .Net 4.5.

1 голос
/ 26 апреля 2009

Я буду вторым, кто порекомендует http://www.7 -zip.org / sdk.html LZMA SDK, но это не ZIP.

  1. Это в свободном доступе
  2. БЫСТРО при декомпрессии
  3. Полностью управляемая реализация
  4. Сжатие намного лучше, чем ZIP / RAR
  5. имеет очень маленькую площадь
  6. Может работать как поток
1 голос
/ 27 февраля 2009

Попробуйте System.IO.Compression.DeflateStream.

...