1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
public class UnzipInfoRepertoire
{
private byte[] DataZip;
private MemoryStream StreamXml= new MemoryStream();
private XmlTextReader FichierXml;
public UnzipInfoRepertoire( byte[] DonnéesZipé )
{
this.DataZip = new byte[DonnéesZipé.Length];
DonnéesZipé.CopyTo(this.DataZip, 0);
this.DeComprime();
}
private bool DeComprime () {
MemoryStream StreamZip = new MemoryStream();
int position;
byte [] tailleoctet = new byte[4];
GZipStream DeZip = new GZipStream( StreamZip, CompressionMode.Decompress, false);
StreamZip.Write(DataZip, 0, DataZip.Length);
position = Convert.ToInt32(StreamZip.Length -4 );
StreamZip.Position = position;
StreamZip.Read (tailleoctet, 0, 4);
StreamZip.Position = 0;
byte [] DataUnZip = new byte[BitConverter.ToInt32(tailleoctet,0)+100];
int offset = 0;
while (true) {
int decompression = DeZip.Read(DataUnZip, offset, 100 );
if (decompression == 0 ) {
break;
}
offset += decompression;
}
DeZip.Flush();
DeZip.Close();
this.StreamXml.SetLength(DataUnZip.Length);
this.StreamXml.Write(DataUnZip, 0, DataUnZip.Length);
return true;
}
}
} |
Partager