Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec ma création de l'auncher

(Le nom 'File' n'existe pas dans le contexte actuel

Sujet résolu
    2 octobre 2011 à 0:29:01

    Bonjour, j'ai commencer la création d'un programme ce matin même. (Un Launcher pour mon jeu)
    En gros, c'est un programme, qui en le lançant, va vérifier si le jeu est installé. S'il n'est pas installer, le programme, entamera le téléchargement du jeu vers sont fichier.

    Mais mon travaille s'est arrêté à la détection du fichier X... text.txt


    Image utilisateur


    Comment fixer ce problème ?

    Ps. Par la même occasion, comment je pourrais faire mon script qui va télécharger le jeu (via un lien internet Ex.: http://monsite.com/jeu.jar) dans C:\jeux\
    par exemple?


    Merci beaucoup à vous d'avance et j'attends vos réponde avec impatience !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      2 octobre 2011 à 0:34:56

      La classe File fait partie du namespace "System.IO".

      Tu as le choix entre :

      Solution 1 :

      Ajouter la ligne :
      using System.IO;
      

      au tout début de ton fichier.

      Solution 2 :

      Remplacer
      if (File.Exists
      
      par
      if (System.IO.File.Exists
      


      Et au passage, c'est File.Exists, pas File.Exist ;)
      • Partager sur Facebook
      • Partager sur Twitter
        2 octobre 2011 à 1:21:29

        Merci beaucoup!:D

        Edit: Donc voila, je suis bloqué tout de suite après... Je n'arrive pas à faire la vérification dans %appdata% pour un raison que j'ignore...
        Donc j'ai cherché un peu sur le google et j'ai trouver une explication très brève que je comprenais (la seul de toute les autre que j'ai compris ^.^)
        j'ai fais :
        private void button1_Click(object sender, EventArgs e)
                {
        if (File.Exists(Environment.SpecialFolder.ApplicationData+"\Roaming\test.txt")) {MessageBox.Show("trouvé");}
        else{MessageBox.Show("pas trouvé...");}
        
        }
        


        Quand je clique sur le bouton (button1_Click) sa m'affichent message disant 'pas trouvé'
        Quelqu'unpourrait m'expliquer plus en détail le "Environment.SpecialFolder.ApplicationData" svp? Je pense ne pas l'avoir compris décidément...
        :euh:
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          2 octobre 2011 à 9:25:03

          Pour obtenir le chemin vers AppData\Roaming, il faut utiliser Environment.GetFolderPath() en lui passant Environment.SpecialFolder.ApplicationData.
          Ensuite, il faut utiliser Path.Combine() pour combiner les parties de chemin.

          Exemple :
          string appDataPath = Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData );
          string filePath = Path.Combine( appDataPath, "test.txt" );
          if( File.Exists ( filePath ) )
          {
              // ...
          }
          
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            2 octobre 2011 à 13:27:56

            J'insiste sur le fait qu'il ne faut jamais combiner deux chemins en concaténant deux chaines.
            Par exemple, ne jamais faire :

            string filePath = appDataPath + "\test.txt";
            


            J'ai eu beaucoup l’occasion de le voir, et ce n'est pas forcément incorrect vu que ça fonctionne.
            Mais il suffi que tu utilises un \ au lieu d'un /, ou que tu oublies de le mettre alors qu'il n'y est pas dans appDataPath, et ton programme va complètement buguer en créant/lisant des fichiers n'importe où.

            Donc il faut toujours faire comme au dessus, utiliser Path.Combine() :

            string filePath = Path.Combine(appDataPath, "test.txt");
            


            Voilà, juste histoire que ce soit bien clair, pour éviter de bêtes erreurs de chemin par la suite alors que tout ça est géré en une seule fonction par le framework ;)
            • Partager sur Facebook
            • Partager sur Twitter
              2 octobre 2011 à 15:51:55

              Bonjours,
              merci pour vos réponses. Sa fonctione très bien! :D

              Mais j'ai esseyé des truque pour que sa est chercher mon 'test.txt' dans le fichier 'AppData\Roaming\dexongame'

              Pour l'instant je l'ai écrit comme sa mais je continu a chercher de mon coté :

              private void button1_Click(object sender, EventArgs e)
                      {
                          string appDataPath = Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData );
                          string filePath = Path.Combine(appDataPath, "\dexongame\test.txt");  //et j'ai esseyer (appDataPath, "dexongame\test.txt");
                          if (File.Exists(filePath))
                          {
                              MessageBox.Show("Trouvé.");
                          }
                          else
                          {
                              MessageBox.Show("Pas Trouvé.");
                          }
                       }
              


              Mais le programme plante :o
              Je vous tien au courant si je trouve de quoi! :)
              et merci encore pour votre aide !

              Edit : Je pense avoir trouvé! 'string filePath = Path.Combine(appDataPath, "dexongame", "test.txt");'
              Là, sa le trouve :D
              • Partager sur Facebook
              • Partager sur Twitter

              Problème avec ma création de l'auncher

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown