Как извлечь zip файл с помощью dotnet framework 4.0 без использования сторонних библиотек dll

У меня исправление. Мне нужно загрузить zip файл из сетевого расположения, а затем распаковать его на локальном компьютере и использовать файлы. Единственное ограничение заключается в том, что я не могу использовать DLL третьей стороны.

Ответы

Ответ 1

В .NET Framework 4.5 теперь существует метод System.IO.Compression.ZipFile.ExtractToDirectory(String, String).

Ответ 2

Я не уверен, что он все еще доступен в VS2010, но в ранних версиях J # был включен в VS и J # включает класс java.util.zip в vjslib.dll, и поскольку он является частью VS, это не сторонний DLL, чтобы вы могли сделать это таким образом.

Вот статья CodeProject, в которой показано, как это сделать: Почтовый и Разархивировать из программы С# с использованием J # runtime

Ответ 3

Нет никакого "хорошего" способа сделать это. Вы, очевидно, могли бы реализовать алгоритм ZIP самостоятельно, используя общедоступную информацию о структуре и классах файлов ZIP, таких как DeflateStream (хотя даже это может не работать, если оно не сжимается с использованием алгоритма DEFLATE). Существует некоторая информация о возможных альтернативах в этом сообщении в блоге, но короткая версия заключается в том, что вам придется либо использовать стороннюю библиотеку, либо перепишите его самостоятельно.

Если это будет ситуация, когда вы сможете выпустить исходный код с помощью GPL'd, вы можете скопировать-вставить код из проекта, например SharpZipLib в свой собственный, тем самым уклоняясь от необходимости использовать DLL. Кроме того, почему вы не можете использовать сторонние DLL?

Ответ 4

Сама среда .NET не поддерживает (в настоящее время) официальную поддержку ZIP файлов. Есть несколько высококачественных сторонних бесплатных библиотек, и J # runtime поддерживает это, как отмечали другие.

Я рекомендую стороннее решение, но если вы абсолютно не можете этого сделать, тогда есть еще один трюк: ZipPackage, который является частью WPF. Он сортирует файлы ZIP (дополненные дополнительными метаданными) и работает достаточно хорошо для чтения большинства ZIP файлов.

Ответ 6

GZipStream чаще всего используется для сжатия данных WCF. Не используйте это здесь.

Вы можете попробовать эту ZIP-библиотеку для сжатия в файлы:

http://www.icsharpcode.net/opensource/sharpziplib/