Архивация файлов RAR, ZIP на C# .NET SharpZipLib, Zlib, java.util.zip | Блог программиста C# .Net, C++

В этой статье я хотел бы поговорить про архивирование файлов. Лидером из библиотек по Архивированию является Zlib, но я не подружился с ней. Никак не смог разобраться(ну честно, я не особо старался) ни когда сидел на C++ ни на C#, хотя всё же надо будет разобраться.

В Microsoft .NET Framework почему то нет встроенной библиотеки, по архивированию файлов. Есть, но для Java, конечно её можно использовать и в C#, но там получаются проблемы с переносом программ. Ибо на другом ПК должен быть установлен помимо .NET Framework, так ещё и пакет java.util.zip. Хотя я даже реализовывал с помощью его. Вот даже нарыл, скрипт для архивирования папки unknown-3460561  java.util.zip.cs (3.1 Кб, 641 скачиваний).

Так же для .NET есть популярная библиотека SharpZipLib.com, с которой я разобрался очень быстро. Подключаем DLL файл ICSharpCode.SharpZipLib.dll к проекту(Project – Add Pereferences – Browse) и

using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Checksums;
...
FastZip fZip = new FastZip();
fZip.CreateZip(@"C:\file.zip", @"C:\papka", true, "");

Ещё можно архивировать через командную строку архиватора WinRAR, но для этого, конечно, нужно, что бы он был установлен. Открываем процесс с параметрами про которые можно прочитать в Хелпе у WinRAR’а.

using System.Diagnostics;
...
Process process = new Process();
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.Arguments = "a -y -inul -ibck C:\\file.zip C:\\PROGRA~1\\DIR";
process.StartInfo.FileName = "WinRAR";
process.Start();

Эх… опять спалил “не документированные функции” icon_smile-8577391
Разберусь с Zlib, напишу по подробнее про архивацию.

google_bmarks-4611395 bobrdobr-4056123 delicious-6922361 technorati-2630268 linkstore-9119729 news2-ru-9297365 rumark-7535466 memori-4576878 moemesto-3485938 Что можно ещё почитать:

Запись опубликована в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.