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 :

else ne fonctionne pas [Débutant]


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Points : 4
    Points
    4
    Par défaut else ne fonctionne pas
    Bonsoir,

    dans mon application, après avoir inséré mon "if" (qui fonctionne) j'insère mon else qui lui ne fontionne pas.
    J'ai tout de suite constaté que c'était du au
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i = 0; i < iFile.Length; i++)
    que j'ai inséré !
    Voici mon 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
    private void buttonX1_Click(object sender, EventArgs e)
            {
     
     
                for (int i = 0; i < iFile.Length; i++)
                {
     
                    if (File.Exists(iFile[i]))
                    {
                        MessageBox.Show("Un fichier a été trouvé", "Fichier trouvé", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                    }
                    else
                    {
     
                        MessageBox.Show("Aucun fichier à imprimer", "Fichier introuvable", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
     
     
     
                }
     
     
     
     
     
     
            }
    Comment remédier à cela ?

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Tu est sur que File.Exists retourne bien false à un moment?
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2014
    Messages : 31
    Points : 51
    Points
    51
    Par défaut
    Salut,

    Que contient la variable iFile (poste le contenu du tableau) ?

    Pour vérifier : est-ce que ce tableau contient bien des chemins complets ?
    Est-ce que tous les chemins dans ton tableau iFile existent (si oui, tu ne passera jamais dans ton else) ?

  4. #4
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    bonjour

    Ah tiens, j'ai déjà vu ça quelque part

    voilà iFile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string[] iFile = Directory.GetFiles(@"C:/Users/Vincent/Desktop", "monfichier.*");
    retrouvé sur un topic résolu précédent.

    (tu aurais pu garder le même sujet et enlever le flag résolu pour reprendre le fil de la discussion)

    Bref

    le code ci-dessus permet de compléter ton tableau de string avec tes fichiers. Directory.getFiles charge ton tableau que si les fichiers existent. Le File.Exists est déjà sous entendu dans cette fonction.

    C'est pourquoi le else de ton if, tu n'y passeras jamais en fait.

    Donc il serait plus judicieux de faire ceci je pense :
    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
     
    private void buttonX1_Click(object sender, EventArgs e)
            {
     
     
                for (int i = 0; i < iFile.Length; i++)
                {
                    if (File.Exists(iFile[i])) //   pas besoin de faire le test mais tu peux le garder au cas où
                    {
                        MessageBox.Show("Un fichier a été trouvé : " +  iFile[i], "Fichier trouvé" , MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                    }
                }
     
                if (iFile.length == 0)
                        MessageBox.Show("Aucun fichier à imprimer", "Fichier introuvable", MessageBoxButtons.OK, MessageBoxIcon.Error);
     
            }

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Oui désolé je n'avais pas pensé à reprendre mon ancien sujet...
    Merci pour vos réponses et merci encore stolx_10 pour avoir trouvé la solution!

    Effectivement oui, c'est plus judicieux et je ne sais pas pourquoi je n'y avait pas pensé
    Je me creuserais plus la tète la prochaine fois !

    Et j'ai une autre petite dernière question, comme tu as pu le voir, dans mon application j'ai un bouton qui permet de chercher si un fichier existe dans un répertoire bien précis, et j'aimerais savoir en fait comment on pourrait faire pour que l’application recherche ce fichier constamment, sans avoir a appuyer sur ce bouton ?
    J'avais pensé à utiliser "try" mais je ne suis sur de rien en tant que débutant...

    Merci.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    ou ceci (inutile d'accéder à la boucle for s'il n'y a pas de fichiers)
    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
            private void buttonX1_Click(object sender, EventArgs e)
            {
                if (iFile.Length == 0)
                {
                    MessageBox.Show("Aucun fichier à imprimer", "Fichier introuvable", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    for (int i = 0; i < iFile.Length; i++)
                    {
                        if (File.Exists(iFile[i])) //   pas besoin de faire le test mais tu peux le garder au cas où
                        {
                            MessageBox.Show("Un fichier a été trouvé : " + iFile[i], "Fichier trouvé", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        }
                    }
                }
            }
    Citation Envoyé par XiiTox Voir le message
    Et j'ai une autre petite dernière question, comme tu as pu le voir, dans mon application j'ai un bouton qui permet de chercher si un fichier existe dans un répertoire bien précis, et j'aimerais savoir en fait comment on pourrait faire pour que l’application recherche ce fichier constamment, sans avoir a appuyer sur ce bouton ?
    Avec un timer
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Merci je vais essayer avec le timer !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. conditions else else if ne fonctionnant pas
    Par johnny3 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/01/2010, 10h22
  2. Ma condition if / else ne fonctionne pas
    Par kryogen dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 11/10/2007, 18h39
  3. condition (if/else) qui ne fonctionne pas
    Par oceane751 dans le forum Langage
    Réponses: 8
    Dernier message: 24/07/2007, 23h58
  4. else ne fonctionnant pas
    Par DJ ripper dans le forum Langage
    Réponses: 5
    Dernier message: 12/12/2006, 18h09
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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