Разархивируйте файлы программно в .net

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

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

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

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

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

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

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

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

Ответы на вопрос(14)

Ваш ответ на вопрос