Программно разархивируйте файлы в .netC#

Место общения программистов C#
Anonymous
Программно разархивируйте файлы в .net

Сообщение Anonymous »

Я пытаюсь программно разархивировать заархивированный файл.

Я пробовал использовать класс System.IO.Compression.GZipStream в .NET, но когда мое приложение запускается (фактически модульный тест), я получаю это исключение:


System.IO.InvalidDataException: магическое число в заголовке GZip не правильно. Убедитесь, что вы передаете поток GZip.


Теперь я понимаю, что файл .zip — это не одно и то же. как файл .gz, и этот GZip — это не то же самое, что Zip.

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

Поэтому я попытался использовать Process.Start() с путем к заархивированному файлу в качестве входных данных. Это заставляет мое приложение открывать окно, показывающее содержимое заархивированного файла. Это все нормально, но приложение будет установлено на сервер, где нет никого, кто мог бы нажать кнопку «Извлечь все файлы».

Итак, как мне заставить мое приложение извлекать файлы в заархивированных файлах?

Или есть другой способ сделать это? Я предпочитаю делать это в коде, не загружая сторонние библиотеки или приложения; отделу безопасности это не особо нравится...

Подробнее здесь: https://stackoverflow.com/questions/836 ... lly-in-net

Вернуться в «C#»