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