Архивы GZip, Deflate, ZIP

Приветствую всех, иногда в логике своих приложений требуется архивация или как еще говорят компрессия данных. Сегодня рассмотрим несколько примеров того как этом можно реализовать с базовыми библиотеками.

Создаем GZip архив

В примере выше почти все строки кода имеют комментарии и не вызовут у вас вопросов, но поверхносно пройтись по коду можно. Создаем два потока один открытия файла для архивации, другой поток создает сам фаил будущего архива. Далее передаем аргументы в класс GZipStream и производим заполнения архива.

Разархивируем GZIP архив

По аналогии как и выше мы создали два потока, в одном открыли фаил, в другом создали текстовый фаил. Передали аргументы в конструктор класса и выполнили декомпрессию архива.

 

Архивация и разархивирования DeflateStream.

По аналогии примером выше, производим и с классом DeflateStream

Не достатком такого архивирования данных будет то что это можно сделать лишь с одним файлом, а не с группой файлов или папкой. Для этого прийдется использовать другие классы, либо разрабатывать свой алгоритм на основе существующих.

Последним и популярным архивом является ZIP

Существует много способов архивации файлов. Но я использую именно его:

Для работы с этим классом требуется подключить:

И добавить ссылку к проекту:

Существуют библиотеки сторонние которые позволяют работать с группой файлов и папок, одна из них DotNetZip но рассматривать ее я не страл, слишьком много примеров в интернете, я ее редко использую.

 

 

Обновлено: 31.05.2018 — 09:47

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.