Подтвердить что ты не робот

Распаковка файла .gz с помощью С#

У меня есть файл tarzip tarified с именем ZippedXmls.tar.gz, в котором есть 2 xmls. Мне нужно программно разархивировать этот файл, и на выходе должно быть 2 xmls, скопированных в папку.

Как достичь этого с помощью С#?

4b9b3361

Ответ 1

Я использовал .Net встроенный GZipStream для gzipping потоков байтов, и он работает отлично. Я подозреваю, что ваши файлы сначала выгружаются, прежде чем они будут загружены.

Вы запросили код, поэтому здесь образец, если у вас есть один файл, который застегнут на молнию:

FileStream stream = new FileStream("output.xml", FileMode.Create); // this is the output
GZipStream uncompressed = new GZipStream(stream, CompressionMode.Decompress);

uncompressed.Write(bytes,0,bytes.Length); // write all compressed bytes
uncompressed.Flush();
uncompressed.Close();

stream.Dispose();

Edit:

Вы изменили свой вопрос, так что файл является файлом tar.gz - технически мой ответ не применим к вашей ситуации, но я оставлю его здесь для людей, которые хотят обрабатывать файлы .gz.

Ответ 2

sharpziplib должен быть в состоянии сделать это