Problème Téléchargement

Résolu
Xerexes - 3 janv. 2013 à 22:37
 Xerexes - 4 janv. 2013 à 00:39
Salutation à tous

J'ai un problème avec mon script je veux faire la liaison entre deux fichier version.txt si c'est la même version, il ne téléchrage pas la mise à jour, et si cela n'est pas la même il la télécharge.

    Private Sub BackgroundWorker2_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork

        Dim NewVersionFile As String = Application.StartupPath & "/version.txt"
        Dim CurrentFileVersion As String = Application.StartupPath & "\version.txt"

        Dim ReadVersion As String = My.Computer.FileSystem.ReadAllText(NewVersionFile)
        Dim ReadCurrentVersion As String = My.Computer.FileSystem.ReadAllText(CurrentFileVersion)

        If Not ReadCurrentVersion = ReadVersion Then

            Dim path1 As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Patch.exe"
            My.Computer.FileSystem.DeleteFile(CurrentFileVersion)

            If Dir(path) <> "" Then
                Kill(path)
            End If

            My.Computer.Network.DownloadFile("http://liendusite/version.txt", NewVersionFile)
            My.Computer.Network.DownloadFile("http://liendusite/Patch.exe", path)
            Process.Start(path)
        Else

        End If
    End Sub

J'espère que vous pourriez m'aidez s'il vous plaît.

Cordialement.

31 réponses

Utilisateur anonyme
4 janv. 2013 à 00:21
Oui mais tu vois bien que ce ne sont pas les mêmes. Tu ne trouves pas ça étrange ?
3
Donc en gros apres avoir télécharger version_distante.txt il faudra suprimé version et renommer version_distante.
3
Utilisateur anonyme
3 janv. 2013 à 22:56
Bonsoir,

Je ne vois pas ce qui cloche dans ton code. Que se passe t-il au juste lorsque tu l'exécute ?
0
Utilisateur anonyme
3 janv. 2013 à 23:00
A part le fait que CurrentFileVersion et NewVersionFile reprennent le même fichier. Tu compares le contenu du fichier avec son propre contenu. Je ne vois pas trop l'intérêt.
Tu devrais commencer par télécharger le nouveau fichier version et le comparer avec celui qui est déjà présent.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour merci de votre réponse

J'avais fait plein de test mais à chaque fois soit il me télécharger la version.txt mais sans le patch soit a chaque fois que je le lancer il me télécharger toujours le patch ou soit sa ne fesait rien du tout.

*J'avais déjà télécharger le nouveau pour le comparer mais sa ne marchais pas non plus je doit sûrement me tromper dans le code.
0
Utilisateur anonyme
3 janv. 2013 à 23:17
La première ligne que tu devrais avoir c'est celle ci :
Dim NewVersionFile As String = Application.StartupPath & "\version_distante.txt"
My.Computer.Network.DownloadFile("http://liendusite/version.txt", NewVersionFile)


Tu remarqueras qu'il faut donner un nom différent au fichier distant car on ne peut pas écrire un fichier du même nom dans le même dossier.

Ensuite, tu reprends la suite de ton code qui semble fonctionnel.
0
Je l'avais déjà fait mais sa me pose toujours le problème qu'il ne compare rien et remplace juste la version sans télécharger le patch.
0
J'ai deux Version.txt un dans mon http et l'autre qui est dans le même dossier que mon application mais je ne veux pas qu'il cherche la version de mon application mais celle qui est dans mon dossier.
0
Utilisateur anonyme
3 janv. 2013 à 23:24
Oui mais refais le quand même avec ce code :
       Dim NewVersionFile As String = Application.StartupPath & "\version_distante.txt"
My.Computer.Network.DownloadFile("http://liendusite/version.txt", NewVersionFile)
Dim ReadVersion As String = My.Computer.FileSystem.ReadAllText(NewVersionFile)
        Dim ReadCurrentVersion As String = My.Computer.FileSystem.ReadAllText(CurrentFileVersion)

        If Not ReadCurrentVersion = ReadVersion Then

            Dim path1 As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Patch.exe"
            My.Computer.FileSystem.DeleteFile(CurrentFileVersion)
            
            'on corrigera ces 3 malheureuses lignes plus tard
            If Dir(path) <> "" Then
                Kill(path)
            End If

            My.Computer.Network.DownloadFile("http://liendusite/Patch.exe", path)
            Process.Start(path)
        Else
            messagebox.show("version égale")
        End If
0
J'ai testé sa avec la version à jour c'est bon et avec la version qui n'est pas a jour il ne me télécharge pas le patch et ne remplace pas la version.
0
Utilisateur anonyme
3 janv. 2013 à 23:42
On voit path et path1 dans ton code, assure toi que ce soit bon.
0
Utilisateur anonyme
3 janv. 2013 à 23:44
Note qu'avec ta méthode, un simple retour de ligne (donc invisible) en trop dans l'un des deux fichiers et ils seront considérés comme différents.
0
Effectivement je vien de le réglé et refait les test mais sa toujours pas marché.
0
Utilisateur anonyme
3 janv. 2013 à 23:49
Bon on va simplifier le code comme ceci :
        Dim NewVersionFile As String = Application.StartupPath & "\version_distante.txt"
        My.Computer.Network.DownloadFile("http://liendusite/version.txt", NewVersionFile)
        Dim CurrentFileVersion As String = Application.StartupPath & "\version.txt"
        Dim ReadVersion As String = My.Computer.FileSystem.ReadAllText(NewVersionFile)
        Dim ReadCurrentVersion As String = My.Computer.FileSystem.ReadAllText(CurrentFileVersion)
        If Not ReadCurrentVersion = ReadVersion Then
            MessageBox.Show("version différente")
        Else
            MessageBox.Show("version égale")
        End If
0
Cette fois il à détecté que la version été différente mais il n'a toujours pas détécté la version égale.
0
Utilisateur anonyme
4 janv. 2013 à 00:01
Oui donc tu as des caractères en plus ou en moiuns dans l'un des 2 fichiers.
Assures toi de ceci en faisant :
MessageBox.Show(ReadVersion.Length.ToString & " " & ReadCurrentVersion.Length.Tostring)

Si les deux chiffres sont différents, c'est que tes fichiers sont différents.
0
Il m'a mis 7 7.
Sinon j'ai seulement écrit dans mes fichier text 1.0.0.0 dans mon dossier ou il y a mon application et 1.0.5.0 sur le http.
0
Utilisateur anonyme
4 janv. 2013 à 00:08
Oui et bien c'est normal qu'il soient différents alors
0
Bien sur je l'ai ai changé en 1.0.0.0 les deux quand j'ai fait le test pour que la version soit égale mais la sa ne marché pas.
0
Utilisateur anonyme
4 janv. 2013 à 00:13
Ouvre les 2 fichiers (version.txt et version_distante.txt) et compare les visuellement ?
0
Rejoignez-nous