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#?
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#?
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.
tak, plik jest tarowany, a następnie spakowany. Jak mogę odzyskać 2 xml w tym przypadku? Dziękujemy za pomoc. –
sharpziplib jest tym, czego chcesz użyć. Obsługuje pliki tar.gz. –
Dzięki Charlie za pomoc! –
sharpziplib powinien być w stanie to zrobić
Jak przechowywać dwa 2 "xmls" w jednym pliku .gz? A może jest to plik .tar.gz? – dtb
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. –