it-swarm.com.ru

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

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

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

31
Guy

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

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");
        }
    }
22
Cheeso

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

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

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

Правка: Как отмечается в ответе Антса, есть System.IO.Packaging.ZipPackage но, безусловно, выглядит, как будто он действительно предназначен для использования в WPF и не очень удобно использовать для общая обработка Zip-файлов. Хотя стоит посмотреть. Я не знал об этом раньше, хотя ... определенно стоит исследовать.

32
Jon Skeet

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

10
Ants

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

6
Oscar Cabrero
4
Paul Rowland

System.IO.Compression имеет ZipArchive класс, начиная с .Net 4.5.

1
Arthur Stankevich

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

1
Inferis

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

  1. Это в свободном доступе
  2. БЫСТРО на декомпрессии
  3. Это полностью управляемая реализация
  4. Это гораздо лучше, чем сжатие Zip/RAR
  5. Имеет очень маленький след
  6. Это может работать как поток
1
Mash