Я всегда использовал , SharpZipLib
Забыл почему часть: Главным образом, потому что его вокруг в течение долгого времени. Это хорошо документируется и имеет интуитивный API. Плюс он - открытый исходный код, если Вы в тот тип вещи.
Я нашел Библиотека DotNetZip быть этим самым легким способом работать с zip-файлами. SharpZipLib является намного большим мощным и гибким решением.
DotNetZip очень прост в использовании. Мне нравится он, потому что этим полностью управляют - никакое требуемое взаимодействие оболочки. Модель программирования является более простой и более чистой, чем это для оболочки. Также это более просто, чем SharpZipLib, а также Упаковочные классы, добавленные в.NET 3.0. Это является свободным, маленьким, активно сохраняемое.
намного лучше, чем опция J#, что один предлагаемый плакат - J# является огромным временем выполнения и гигантской таблеткой для глотания для получения просто поддержки ZIP. Также поддержка J# прекращается. Вероятно, не хорошая идея представить новые зависимости от J#.
Пример кода для DotNetZip:
try
{
using (ZipFile zip = new ZipFile(args[0], System.Console.Out))
{
zip.AddDirectory(args[1]); // recurses subdirectories
zip.Save();
}
}
catch (System.Exception ex1)
{
System.Console.Error.WriteLine("exception: " + ex1);
}
DotNetZip работает с.NET v2.0, 3.0, 3.5, а также Компактная Платформа v2.0 и 3.5. Это делает zip-файлы, имена файлов Unicode, комментарии, пароли. Это делает ZIP64, а также Самораспаковывающиеся архивы. Это - FAST.Попробуйте.
Классы GZipStream и DeflateStream под Системой. Пространство имен IO.Compression делает довольно легким архивировать вещи.
ОБНОВЛЕНИЕ: Комментарии правильно указывают, что эти классы не позволяют Вам управлять zip-файлом. Однако J# dlls содержат необходимую функциональность в java.util и java.io пространствах имен. Для получения дополнительной информации посмотрите статья Code Project dmihailescu, который детализирует их использование и предоставляет код кода.
Никто не упомянул компонент Zip Xceed. Я использовал его прежде, и это работало превосходное на создание zip-файлов и сжатие потоков данных. Я настоятельно рекомендую его, но может быть компромисс лицензионного сбора.
Так как Вы нацелены на Платформу 3.5, я пошел бы с System.IO.Packaging
. Это - библиотека, специально разработанная для архивирования, и идет с платформой, таким образом, даже нет дополнительного DLL, необходимого продукту. Пример использования является зверским, все же.
Используя оболочку не рекомендуется. Во-первых, это только работало бы над Windows XP и выше. Но даже если Вы не заботитесь, о котором, это - ловушки, являются довольно многочисленными (я сделал это прежде, но только потому, что у меня действительно не было выбора).
, если бы Вы не нацелены 3.5, я использовал бы SharpZipLib
. Это - вполне хорошая библиотека, и даже если Вы используете 3.5, Вы могли бы рассмотреть это.