Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

DotNetZip является одним. Простой, простой в использовании. Он имеет хорошие возможности: AES Encryption, регулярное шифрование, потоки, 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");
        }
    }

Ответ 2

EDIT: см. примечание в комментариях - теперь SharpZipLib не поддерживается, и вы, вероятно, захотите его избежать.

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

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

EDIT: Как отмечено в ответе Ants, System.IO.Packaging.ZipPackage, но это, безусловно, похоже на то, что действительно предназначено для использования в WPF, и не было бы очень удобно использовать для общей обработки файлов zip. Стоит посмотреть, хотя. Я не знал об этом раньше, хотя... определенно стоит исследовать.

Ответ 3

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

Ответ 4

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

Ответ 6

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

Ответ 7

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

  • Это в общественном достоянии
  • Это FAST при распаковке
  • Полностью управляемая реализация
  • Он намного лучше сжимает, чем ZIP/RAR
  • У него очень мало места
  • Он может работать как поток

Ответ 8

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