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

avec Java Discussion :

Récupérer le nom d'un fichier


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Amateur
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Récupérer le nom d'un fichier
    Bonjour à vous,
    Voici un morceau de code qui me pose problème :

    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
    static File repertoire = new File("data/CARTES/");
    	static File[] decksfiles = repertoire.listFiles();
     
    	public static void decksDataread() throws IOException {
     
    		int i = 0;
    		while (i < decksfiles.length) {
    			if (decksfiles[tourdeck].getName().toString() == "exemple.txt") {
    				System.out.println("exemple.txt est présent !");
    			} else if (decksfiles[tourdeck].getName().toString() == "test.txt") {
    				System.out.println("test.txt est présent !");
    			} else {
    				System.out.println(decksfiles[tourdeck].getName().toString());
    				i++;
    			}
    J'attends de ce code qu'il m'affiche :
    "exemple.txt est présent !"
    "test.txt est présent !"

    mais il m'affiche :
    "exemple.txt"
    "test.txt"

    Sauf que s'il est capable d'écrire ça, c'est qu'il devrait justement ne pas les écrire...
    Est-ce que quelqu'un y comprends quelque chose et peut m'éclairer ? Merci !

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Ce que tu vois s'afficher c'est le résultat de l'exécution de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(decksfiles[tourdeck].getName().toString());
    En effet, les deux conditions suivantes sont fausses :

    1. decksfiles[tourdeck].getName().toString() == "exemple.txt".
    2. decksfiles[tourdeck].getName().toString() == "test.txt".


    On ne teste pas l'égalité de deux châines de caractères avec l'opérateur d'identité (==), mais avec la méthode equals(). Plus généralement, on ne teste pas l'égalité de n'importe quel objet par == mais par equalsl().

    decksfiles[tourdeck].getName().equals("exemple.txt").


    Attention dans ton code, après correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while (i < decksfiles.length) {
        if (decksfiles[tourdeck].getName().equals("exemple.txt") ) {
            System.out.println("exemple.txt est présent !");
        } else if (decksfiles[tourdeck].getName().equals("test.txt") ) {
            System.out.println("test.txt est présent !");
        } else {
            System.out.println(decksfiles[tourdeck].getName().toString());
            i++;
    }
    1. i est incrémenté seulement pour les fichiers qui ne sont ni exemple.txt ni test.txt. Du coup, dès que l'un de ces deux fichiers est trouvé, on a une boucle infinie
    2. tu boucles sur i, alors que tu accèdes à une valeur dans ton tableau via tourdeck, qui sort d'où ? Quelle est sa valeur ? Boucler sur une variable et en utiliser une autre pour accèder aux éléments du tableau, c'est risque d'exception ou

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Amateur
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse,

    Super, je prends bonne note du "equals()" !
    J'avais remplacé les "tourdeck" par des "i" pour rendre le post sur le forum plus générique, mais certains ont été oubliés.

    mon code marche comme espéré donc grand merci à toi !

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

Discussions similaires

  1. Récupérer le nom d'un fichier Txt
    Par tonton44 dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2007, 15h35
  2. Récupérer le nom d'un fichier à partir de son chemin
    Par Jiraiya42 dans le forum Langage
    Réponses: 2
    Dernier message: 31/03/2007, 11h38
  3. Expression régulière pour récupérer le nom d'un fichier
    Par calimero2611 dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2006, 19h00
  4. SQL LOADER: Récupérer le nom d'un fichier
    Par claralavraie dans le forum SQL*Loader
    Réponses: 4
    Dernier message: 09/01/2006, 09h09
  5. [vb2005]récupérer le nom d'un fichier
    Par stargates dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/07/2005, 10h57

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