Я пытаюсь распаковать архивированный файл.
Я пытался использовать System.IO.Compression.GZipStreamкласс в .NET, но когда мое приложение работает (на самом деле модульный тест), я получаю это исключение:
System.IO.InvalidDataException: магическое число в заголовке GZip неверно. Убедитесь, что вы передаете поток GZip.
Теперь я понимаю, что .zipфайл не совпадает с .gzфайлом, и это GZipне то же самое, что Zip.
Однако, поскольку я могу извлечь файл, дважды щелкнув вручную сжатый файл и нажав кнопку «Извлечь все файлы», я думаю, что в коде должен быть способ сделать это.
Поэтому я попытался использовать Process.Start()путь к архивному файлу в качестве входных данных. Это заставляет мое приложение открывать окно, показывающее содержимое в заархивированном файле. Это все нормально, но приложение будет установлено на сервере, который не нажимает кнопку «Извлечь все файлы».
Итак, как мне заставить мое приложение извлекать файлы в заархивированных файлах?
Или есть другой способ сделать это? Я предпочитаю делать это в коде, без загрузки каких-либо сторонних библиотек или приложений; отдел безопасности не слишком увлекается этим ...