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