Я намагаюся програматично розпакувати файл, який зберігається в папері.
Я спробував використовувати System.IO.Compression.GZipStream
клас у .NET, але коли запускається моя програма (фактично тестова одиниця), я отримую такий виняток:
System.IO.InvalidDataException: Магічне число в заголовку GZip невірно. Переконайтеся, що ви проїжджаєте в потоці GZip ..
Тепер я розумію, що .zip
файл - це не те саме, що .gz
файл, і GZip
це не те саме , що файл Zip
.
Однак, оскільки я в змозі витягнути файл, вручну двічі клацнувши заархівований файл, а потім натиснувши кнопку "Витягнути всі файли", я думаю, що в коді має бути спосіб зробити це.
Тому я спробував використовувати Process.Start()
з вкладкою шлях до zipped-файлу. Це призводить до того, що мій додаток відкриває Вікно, де відображається вміст у заархівованому файлі. Це все добре, але додаток буде встановлено на сервер, у якому ніхто не буде натиснути кнопку "Витягнути всі файли".
Отже, як я можу отримати свою програму для витягування файлів у заархівованих файлах?
Або є інший спосіб це зробити? Я вважаю за краще це робити в коді, не завантажуючи сторонніх бібліотек чи програм; відділ безпеки не надто фантазує з цього приводу ...