Как использовать System.IO.Compression для чтения/записи ZIP-файлов?

Лучше использовать стороннюю .net-framework библиотеку, например http://www.codeplex.com/DotNetZip, вместо .net-framework того, чтобы пытаться использовать compress GZipStream или DeflateStream dotnet для чтения zip-файла.

Классы zip *** Stream в .NET позволяют dotnet читать или записывать сжатые zip потоки байтов. Эти классы decompression НЕ читают и не записывают zip zip-файлы. ZIP-файл - это compressed сжатые данные, окруженные decompression «конвертом» или заголовком. Думайте uncompress об этом как о метаданных compression - они включают имя файла, временную .net метку, CRC и множество других decompression вещей. Классы ** Stream создают compress только поток сжатых данных dotnet и не знают, как создавать decompress или использовать метаданные, что compress описано в спецификации формата decompress PKZip, поддерживаемой PKWare.

Сторонние decompression библиотеки, такие как DotNetZip, обрабатывают zip метаданные в ZIP-архиве. Они decompress могут использовать или не dotnet использовать класс System.IO.Compression.DeflateStream() для compression создания сжатого потока байтов. В compression предыдущих выпусках, например, DotNetZip compress использовал встроенный DeflateStream. Начиная uncompress с версии 1.7, DotNetZip включает compressed собственный DeflateStream, который decompress более эффективен, чем тот, который dotnet поставляется в .NET Framework. В compression качестве дополнительного decompress преимущества встроенный DeflateStream zip в DotNetZip позволяет использовать zip DotNetZip в .NET Compact data-compression Framework 2.0, в котором compression отсутствует System.IO.Compression.DeflateStream. (он decompress был добавлен в Compact Framework compressed 3.5)

На сайте DotNetZip есть compressed хороший форум, если у вас compression есть еще вопросы. Пример dot-net кода C#:

    try
    {
        using (ZipFile zip = new ZipFile())
        {
            zip.AddDirectory(DirectoryToZip); // recurses subdirs
            zip.Save(Filename);
        }
    }
    catch (System.Exception ex1)
    {
        System.Console.Error.WriteLine("exception: " + ex1);
    }

.net

compression

zip

2022-11-19T01:11:48+00:00