Bonjour
Je voulai savoir comment pour dézipper un fichier aprés l'avoir uploader
j'upload le fichier zip ensuite comment faire pour le dézipper?
j'ai trouvé cette fonction mais une exeption est généré
Le nombre magique dans l'en-tête GZip n'est pas correct. Assurez-vous que votre passage s'opère dans un flux GZip.


Public Function decompression(ByVal cheminSource As String, ByVal cheminDestination As String) As Boolean
' cheminSource : chemin complet du fichier compressé
' cheminDestination : chemin complet du fichier où le fichier doit être décompressé

Try

'Lecture du fichier compresse
Dim monFileStream As New FileStream(cheminSource, FileMode.Open)
' Données du fichier placées dans un GZipStream
Dim monGzipStream As New GZipStream(monFileStream, CompressionMode.Decompress)

' Tableau qui va contenir la taille du fichier
Dim tailleOctets(3) As Byte

' Positionnement dans le Stream pour récupérer la taille
Dim position As Integer = CInt(monFileStream.Length - 4)
monFileStream.Position = position

' Récupération de la taille du fichier
monFileStream.Read(tailleOctets, 0, 4)

' Repositionnement en début du Stream
monFileStream.Position = 0

' Conversion de la taille du fichier en entier
Dim tailleFichier As Integer = BitConverter.ToInt32(tailleOctets, 0)
' Dimesionnement du buffer
Dim buffer(tailleFichier + 100) As Byte
' Offset qui permettra de se repérer dans le Stream
Dim monOffset As Integer = 0


While (True)

' Les données sont décompressées et placées dans le buffer
Dim decompressionOctets As Integer = monGzipStream.Read(buffer, monOffset, 100)

' Tant qu'il reste des données on continue
If (decompressionOctets = 0) Then
Exit While
End If

' On icrémente l'offset pour ne pas repartir de 0 à chaque fois...
monOffset += decompressionOctets

End While

' Création du fichier décompressé
monFileStream = New FileStream(cheminDestination, FileMode.Create)
' Ecriture des données décomrpessées dans le fichier
monFileStream.Write(buffer, 0, tailleFichier - 1)

' Efface les données en mémoire tampon
monFileStream.Flush()

' Fermeture des Streams
monFileStream.Close()
monGzipStream.Close()

Return True

Catch ex As Exception


Response.Write(ex.Message)

End Try
End Function