Bonjour !

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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
Public Function decompression(ByVal cheminSource As String, ByVal cheminDestination As String) As Boolean
 
        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
 
            Return False
            MsgBox(ex.Message)
 
        End Try
 
    End Function

Cette fonction est appelée comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Call decompression(path & "\" & name & ".gz", path & "\" & name & ".exe")
avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
path & "\" & name & ".gz"
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 !