2009-08-28 22 views
16

Mam plik tarzowanego pliku o nazwie ZippedXmls.tar.gz, który ma w sobie 2 xml. Potrzebuję programowo rozpakować ten plik, a wynik powinien być 2 xmls skopiowany w folderze.Rozpakowywanie pliku .gz przy użyciu C#

Jak osiągnąć to za pomocą C#?

+2

Jak przechowywać dwa 2 "xmls" w jednym pliku .gz? A może jest to plik .tar.gz? – dtb

+0

Pamiętaj, że standard gzip kompresuje i dekompresuje tylko strumienie bajtów - jeśli masz skompresowane grupy plików, są one prawdopodobnie archiwizowane jako pojedynczy plik, zanim zostaną spakowane gzipem, o czym wspomniał dtb. –

Odpowiedz

33

mam używany .Net wbudowanej GZipStream dla gzipping strumieni bajtowych i to działa dobrze. Podejrzewam, że twoje pliki są najpierw tarowane, zanim zostaną spakowane gzipem.

pan poprosił o kod, więc tutaj jest próbka, zakładając, że masz jeden plik, który jest spakowany:

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:

Zmieniłeś swoje pytanie, tak że plik to plik tar.gz - technicznie moja odpowiedź nie dotyczy twojej sytuacji, ale zostawię to tutaj dla osób, które chcą obsługiwać pliki .gz.

+0

tak, plik jest tarowany, a następnie spakowany. Jak mogę odzyskać 2 xml w tym przypadku? Dziękujemy za pomoc. –

+0

sharpziplib jest tym, czego chcesz użyć. Obsługuje pliki tar.gz. –

+0

Dzięki Charlie za pomoc! –

Powiązane problemy