У меня есть файл tarzip tarified с именем ZippedXmls.tar.gz, в котором есть 2 xmls.
Мне нужно программно разархивировать этот файл, и на выходе должно быть 2 xmls, скопированных в папку.
Как достичь этого с помощью С#?
Ответ 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.