Código
zip.Read(buffer, 0, buffer.Length)
y me genera este error
Código:
El número mágico del encabezado de GZip no es correcto. Asegúrese de que está pasando una secuencia GZip.
Busque que era numero magico, y son los primeros bytes de todo archivo, que ayudan a identificar de que tipo de archivo es. Ej: GIF87a es el "numero magico" de un tipo de GIF
http://es.wikipedia.org/wiki/N%C3%BAmero_m%C3%A1gico
Si guardo el contenido del gzip, en un fichero, y luego descomprimo con otra rutina similar, funciona de maravilla.
FUNCION PARA DESCOMPRIMIR UN STRING - FUNCIONA MAL
Código
Private Function UnZip(ByVal compressedText As String) As String Dim gzBuffer As Byte() = System.Text.Encoding.ASCII.GetBytes(compressedText) 'Convert.FromBase64String(compressedText) Using ms As New MemoryStream() Dim msgLength As Integer = BitConverter.ToInt32(gzBuffer, 0) ms.Write(gzBuffer, 4, gzBuffer.Length - 4) Dim buffer As Byte() = New Byte(msgLength - 1) {} ms.Position = 0 Using zip As New GZipStream(ms, CompressionMode.Decompress) zip.Read(buffer, 0, buffer.Length) End Using Return System.Text.Encoding.UTF8.GetString(buffer) End Using End Function
FUNCION PARA DESCOMPRIMIR UN ARCHIVO - FUNCIONA BIEN
Código
Private Function DecompressFile(ByVal CompressedFilename As String, ByVal DecompressedFilename As String) As Boolean Try Dim [Stream] As FileStream = New FileStream(CompressedFilename, FileMode.Open) Dim [GZipStream] As GZipStream = New GZipStream([Stream], CompressionMode.Decompress) Dim sr As StreamReader = New StreamReader(CType([GZipStream], IO.Stream)) My.Computer.FileSystem.WriteAllText(DecompressedFilename, sr.ReadToEnd(), False) sr.Close() : [Stream].Close() Catch ex As IOException msgbox(ex.Message) Catch ex As Exception msgbox(ex.Message) End Try Return False End Function
Espero puedan ayudarme, muchas gracias.