[Vb.Net] Problème téléchargement + décompression

Problème téléchargement + décompression [Vb.Net] - C#/.NET managed - Programmation

Marsh Posté le 02-05-2016 à 18:07:41    

Bonjour !  :)  
 
Je développe un installeur et j'ai besoin de téléchargé des fichiers (.exe). cepandant en utilisant  
 
Code :
 

Code :
  1. My.Computer.Network.DownloadFile


 
Le ficher se télécharge bien, mais lorsque l'on essai de le lancer, il s'ouvre dans une console et se ferme (alors que c'est une winform !!! )  
J'ai pu remédier à ce probleme en compressant ces fichiers... en .gz
 
J'utilise donc la méthode de Gzip Stream pour les décompresser !  voici mon code :
 
La fonction de décompression :
 
Code :
 

Code :
  1. Public Function decompression(ByVal cheminSource As String, ByVal cheminDestination As String) As Boolean
  2.         Try
  3.             'Lecture du fichier compresse
  4.             Dim monFileStream As New FileStream(cheminSource, FileMode.Open)
  5.             ' Données du fichier placées dans un GZipStream
  6.             Dim monGzipStream As New GZipStream(monFileStream, CompressionMode.Decompress)
  7.             ' Tableau qui va contenir la taille du fichier
  8.             Dim tailleOctets(3) As Byte
  9.             ' Positionnement dans le Stream pour récupérer la taille
  10.             Dim position As Integer = CInt(monFileStream.Length - 4)
  11.             monFileStream.Position = position
  12.             ' Récupération de la taille du fichier
  13.             monFileStream.Read(tailleOctets, 0, 4)
  14.             ' Repositionnement en début du Stream
  15.             monFileStream.Position = 0
  16.             ' Conversion de la taille du fichier en entier
  17.             Dim tailleFichier As Integer = BitConverter.ToInt32(tailleOctets, 0)
  18.             ' Dimesionnement du buffer
  19.             Dim buffer(tailleFichier + 100) As Byte
  20.             ' Offset qui permettra de se repérer dans le Stream
  21.             Dim monOffset As Integer = 0
  22.             While (True)
  23.                 ' Les données sont décompressées et placées dans le buffer
  24.                 Dim decompressionOctets As Integer = monGzipStream.Read(buffer, monOffset, 100)
  25.                 ' Tant qu'il reste des données on continue
  26.                 If (decompressionOctets = 0) Then
  27.                     Exit While
  28.                 End If
  29.                 ' On icrémente l'offset pour ne pas repartir de 0 à chaque fois...
  30.                 monOffset += decompressionOctets
  31.             End While
  32.             ' Création du fichier décompressé
  33.             monFileStream = New FileStream(cheminDestination, FileMode.Create)
  34.             ' Ecriture des données décomrpessées dans le fichier
  35.             monFileStream.Write(buffer, 0, tailleFichier - 1)
  36.             ' Efface les données en mémoire tampon
  37.             monFileStream.Flush()
  38.             ' Fermeture des Streams
  39.             monFileStream.Close()
  40.             monGzipStream.Close()
  41.             Return True
  42.         Catch ex As Exception
  43.             Return False
  44.             MsgBox(ex.Message)
  45.         End Try
  46.     End Function


 
 
Cette fonction est appelée comme suit :
 
Code :  
 
 

Code :
  1. Call decompression(path & "\" & name & ".gz", path & "\" & name & ".exe" )


 
Code :
 

Code :
  1. path & "\" & name & ".gz"


 
 
étant le chemin du fichiers une fois celui ci téléchargé...
 
NB: j'ai essayer de mettre juste path dans le 2eme argument mais meme probleme...
 
Mon probleme :
 
Aucune décompression n'est effectuée !  
 
Et le plus étonnant est que je n'ai aucune erreur en sortie !  
 
 
Merci de votre aide !  :bounce:

Reply

Marsh Posté le 02-05-2016 à 18:07:41   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed