IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET]Décompression avec Gzip


Sujet :

Windows Forms

  1. #21
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Du nouveau mais encore des erreurs
    Bon voilà j'ai changé le code mais j'ai encore un soucis ...

    Bon voilà le code :
    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
    Private Sub CheckForUpdate()
     
            Dim WebClient As New Net.WebClient
            Dim MyVersion As String = String.Empty
            Dim LastVersion As String = String.Empty
     
            If IO.File.Exists(Application.StartupPath & "\version.txt") Then
                MyVersion = IO.File.ReadAllText(Application.StartupPath & "\version.txt")
            End If
     
            LastVersion = WebClient.DownloadString("http://www.folsus.com/miseajour/version.txt")
     
            If LastVersion.Replace(".", String.Empty) > MyVersion.Replace(".", String.Empty) Then
     
                MsgBox("Mise à jour disponible !")
                IO.File.WriteAllText(Application.StartupPath & "\version.txt", LastVersion)
     
                If IO.File.Exists(Application.StartupPath & "\maj.zip") Then
                    IO.File.Delete(Application.StartupPath & "\maj.zip")
                End If
     
                WebClient.DownloadFile("http://www.folsus.com/miseajour/maj.zip", Application.StartupPath & "\version.txt")
                MsgBox("Mise à jour téléchargée !")
     
            Else
                MsgBox("Pas de mise à jour")
            End If
     
        End Sub
    Le système de version est maintenant débug, donc si une version est dispo il doit changer le numéo dans la version et télécharger le maj.zip. Le problème est là, quand il doit télécharger le zip il m'affiche une erreur et me dit :

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    Consultez la fin de ce message pour plus de détails sur l'appel du débogage
    juste-à-temps (JIT) à la place de cette boîte de dialogue.
     
    ************** Texte de l'exception **************
    System.Net.WebException: Une exception s'est produite lors d'une requête WebClient. ---> System.IO.DirectoryNotFoundException: Impossible de trouver une partie du chemin d'accès 'C:\Users\Kevlu\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\'.
       à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
       à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
       à System.Net.WebClient.DownloadFile(Uri address, String fileName)
       --- Fin de la trace de la pile d'exception interne ---
       à System.Net.WebClient.DownloadFile(Uri address, String fileName)
       à System.Net.WebClient.DownloadFile(String address, String fileName)
       à WindowsApplication1.Form1.CheckForUpdate() dans C:\Users\Kevlu\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Form1.vb:ligne 29
       à WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) dans C:\Users\Kevlu\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Form1.vb:ligne 6
       à System.EventHandler.Invoke(Object sender, EventArgs e)
       à System.Windows.Forms.Form.OnLoad(EventArgs e)
       à System.Windows.Forms.Form.OnCreateControl()
       à System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       à System.Windows.Forms.Control.CreateControl()
       à System.Windows.Forms.Control.WmShowWindow(Message& m)
       à System.Windows.Forms.Control.WndProc(Message& m)
       à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       à System.Windows.Forms.Form.WmShowWindow(Message& m)
       à System.Windows.Forms.Form.WndProc(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
     
     
    ************** Assemblys chargés **************
    mscorlib
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase*: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    WindowsApplication1
        Version de l'assembly*: 1.0.0.0
        Version Win32*: 1.0.0.0
        CodeBase*: file:///C:/Users/Kevlu/Documents/Visual%20Studio%202010/Projects/WindowsApplication1/WindowsApplication1/bin/Debug/WindowsApplication1.exe
    ----------------------------------------
    Microsoft.VisualBasic
        Version de l'assembly*: 10.0.0.0
        Version Win32*: 10.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    ----------------------------------------
    System
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Core
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------
    System.Windows.Forms
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Runtime.Remoting
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    ----------------------------------------
    System.Configuration
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    mscorlib.resources
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/mscorlib.resources.dll
    ----------------------------------------
    System.resources
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/System.resources.dll
    ----------------------------------------
    System.Windows.Forms.resources
        Version de l'assembly*: 4.0.0.0
        Version Win32*: 4.0.30319.1 built by: RTMRel
        CodeBase*: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------
     
    ************** Débogage JIT **************
    Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
    application ou cet ordinateur (machine.config) doit avoir la valeur
    jitDebugging définie dans la section system.windows.forms.
    L'application doit également être compilée avec le débogage
    activé.
     
    Par exemple*:
     
    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>
     
    Lorsque le débogage juste-à-temps est activé, les exceptions non gérées
    seront envoyées au débogueur JIT inscrit sur l'ordinateur
    plutôt que d'être gérées par cette boîte de dialogue.
    Je ne comprend pas pourquoi si tu pouvais m'aider stp.

  2. #22
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    System.IO.DirectoryNotFoundException: Impossible de trouver une partie du chemin d'accès 'C:\Users\Kevlu\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\'.
    Bizarre... pourtant le répertoire doit bien exister, puisque c'est le répertoire de l'application
    Au fait, tu télécharges le zip vers le fichier version.txt, ce n'est probablement pas ce que tu veux... cela dit je ne pense pas que ça explique l'erreur

    Autre chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If LastVersion.Replace(".", String.Empty) > MyVersion.Replace(".", String.Empty)
    Tu ne peux pas comparer les versions de cette façon, ça n'a pas de sens.

    Par exemple, si LastVersion = "1.2.0.0" et MyVersion = "1.1.42.0", tu vas comparer "1200" et "11420". Dans ce cas MyVersion semble plus grand, alors que ce n'est pas le cas...

    Il existe une classe Version qui sert justement à ça. Tu peux créer une instance de Version à partir de la chaine qui représente la version, et ensuite comparer 2 instances de Version avec les opérateurs normaux de comparaison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim vMyVersion As New Version(MyVersion)
    Dim vLastVersion As New Version(LastVersion)
    If vLastVersion > vMyVersion Then
       ...

  3. #23
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebClient.DownloadFile("http://www.folsus.com/miseajour/maj.zip", Application.StartupPath & "\")
    Serait plus approprié pour qu'il télécharge le zip dans le dossier où se situe version.txt ?

    Ensuite pour le système de version, je suis d'accord avec toi mais en sachant que si je ne met qu'un seul chiffre àprès chaque fois, ton bug ne sera pas valable mais je peux toujours faire ce que tu m'as dit.

    Ensuite avec ton système de version :
    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
    Private Sub CheckForUpdate()
     
            Dim WebClient As New Net.WebClient
            Dim MyVersion As String = String.Empty
            Dim LastVersion As String = String.Empty
            Dim vMyVersion As New Version(MyVersion)
            Dim vLastVersion As New Version(LastVersion)
     
            If IO.File.Exists(Application.StartupPath & "\version.txt") Then
                MyVersion = IO.File.ReadAllText(Application.StartupPath & "\version.txt")
            End If
     
            LastVersion = WebClient.DownloadString("http://www.folsus.com/miseajour/version.txt")
     
            If vLastVersion > vMyVersion Then
     
                MsgBox("Mise à jour disponible !")
                IO.File.WriteAllText(Application.StartupPath & "\version.txt", LastVersion)
     
                If IO.File.Exists(Application.StartupPath & "\maj.zip") Then
                    IO.File.Delete(Application.StartupPath & "\maj.zip")
                End If
     
                WebClient.DownloadFile("http://www.folsus.com/miseajour/maj.zip", Application.StartupPath & "\")
                MsgBox("Mise à jour téléchargée !")
     
            Else
                MsgBox("Pas de mise à jour")
            End If
    Ca me met une erreur quand j'essaye le code qui me dit que la portion de chaine était trop courte ou trop longue
    Merci

  4. #24
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    Ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebClient.DownloadFile("http://www.folsus.com/miseajour/maj.zip", Application.StartupPath & "\")
    Serait plus approprié pour qu'il télécharge le zip dans le dossier où se situe version.txt ?
    Non, il faut mettre le chemin du fichier de destination, pas le chemin du répertoire

    Citation Envoyé par Yaoox Voir le message
    Ca me met une erreur quand j'essaye le code qui me dit que la portion de chaine était trop courte ou trop longue
    Ben tu initialises les objets Version alors que les chaines sont vides... il faut les créer après avoir récupérer la valeur des chaines MyVersion et LastVersion

  5. #25
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Bah le chemin de destination est le chemin où se situe le .exe donc comment je peux faire ?

  6. #26
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Yaoox Voir le message
    Bah le chemin de destination est le chemin où se situe le .exe donc comment je peux faire ?
    Bah comme tu as fais 2 lignes au dessus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebClient.DownloadFile("http://www.folsus.com/miseajour/maj.zip", Application.StartupPath & "\maj.zip")
    D'ailleurs, évite les concaténations pour construire des chemins, parce que ça ne tient pas compte du fait que le séparateur de répertoire soit déjà présent ou pas. Utilise plutôt Path.Combine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim zipPath As String = IO.Path.Combine(Application.StartupPath, "maj.zip")
    WebClient.DownloadFile("http://www.folsus.com/miseajour/maj.zip", zipPath)

  7. #27
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Points : 5
    Points
    5
    Par défaut Re
    Bon voilà

    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
     Private Sub CheckForUpdate()
     
            Dim WebClient As New Net.WebClient
            Dim Version As String = IO.Path.Combine(Application.StartupPath, "version.txt")
            Dim MyVersion As String = IO.File.ReadAllText(Version)
            Dim LastVersion As String = IO.File.ReadAllText("http://www.folsus.com/miseajour/version.txt")
            Dim zipPath As String = IO.Path.Combine(Application.StartupPath, "maj.zip")
            Dim vMyVersion As New Version(MyVersion)
            Dim vLastVersion As New Version(LastVersion)
     
            If IO.File.Exists(Application.StartupPath & "\version.txt") Then
                MyVersion = IO.File.ReadAllText(Application.StartupPath & "\version.txt")
            End If
     
            LastVersion = WebClient.DownloadString("http://www.folsus.com/miseajour/version.txt")
     
            If vLastVersion > vMyVersion Then
     
                MsgBox("Mise à jour disponible !")
                IO.File.WriteAllText(Application.StartupPath & "\version.txt", LastVersion)
     
                If IO.File.Exists(Application.StartupPath & "\maj.zip") Then
                    IO.File.Delete(Application.StartupPath & "\maj.zip")
                End If
     
                WebClient.DownloadFile("http://www.folsus.com/miseajour/maj.zip", zipPath)
                MsgBox("Mise à jour téléchargée !")
     
            Else
                MsgBox("Pas de mise à jour")
            End If
     
        End Sub
    Le zip se téléchargement parfaitement maintenant, une bonne nouvelle ^^ j'ai ensuite essayé de faire le système de version que tu m'as proposé en récupérant la valeur de chaine mais quand j'essaye je ne comprend pas pourquoi il me dit erreur impossible de trouver C:\version.txt alors que je lui demande de chercher version.txt où l'application est démarré

    Ensuite j'aimerai faire une progressbar en fonction de l'avancement du téléchargement de zip et de l'extraction pour faire voir que ce n'est pas un bug et qu'on est entrain de télécharger mais je ne vois pas comment mettre en place.
    Merci

Discussions similaires

  1. Probleme pour décompresser avec gzip
    Par Mathieu Salles dans le forum Général Java
    Réponses: 5
    Dernier message: 23/04/2013, 10h55
  2. [ObjectInputStream]Pb avec GZIP et ByteArrayInputStream
    Par riloo dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 29/04/2004, 17h19
  3. [VB.Net] Probleme avec dialogues (confirm et alert)
    Par crackity_jones666 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/11/2003, 22h05
  4. [IB v7.1][C#][ADO.NET] Démarrer avec IB 71
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 14
    Dernier message: 05/08/2003, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo