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

Java Discussion :

Récupérer un nom de fichier sans extension


Sujet :

Java

  1. #1
    OxN
    OxN est déconnecté
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Récupérer un nom de fichier sans extension
    Bonjour à tous...

    j'aimerai récupérer le nom d'un fichier, mais sans son extension:
    Si j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom = fichier.getName()
    Le résultat va être le suivant : "Fichier.txt" par exemple
    Mais je voudrai récupérer le simple nom (sans extension) ...

    Ya t'il une autre soilution que le "tronquage" du nom?

    Merci beaucoup!

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Février 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    L'extension fait partie du non du fichier.

    Donc je vois pas comment le faire sans les séparer explicitement.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128
    Par défaut
    Non je ne pense pas qu il y est d autre solution que le tronquage avec un split ou un StringTokenizer

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    StringTokenizer quand il n'y a qu'une seule occurence du séparateur c'est une mauvaise idée, de même que le split, la méthode classique est alors la plus appropriée ...

    tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String nomCourt = (fichier.getName() != null) ? fichier.getName().substring(0,fichier.getName().indexOf('.')) : "";

  5. #5
    OxN
    OxN est déconnecté
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut MERKIII
    Génial! Impecc les gars!

    merci encore!

  6. #6
    OxN
    OxN est déconnecté
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Tite explication?
    Thibaut.. tu pourrais m'apporter quelque précision?

    a quoi servent le: et comment marche les indices?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier.getName().substring(0,fichier.getName().indexOf('.')) : "";
    ??

    Merci déjà pour tout!

  7. #7
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    A ? B : C est un opérateur ternaire:

    si A est vrai alors la valeur rentournée est B, sinon C.

    c'est équivalent à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (A) {
     return B;
    } else {
     return C;
    }
    c'est juste pour vérifier que le nom n'est pas null est éviter un NullPointerException !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (fichier.getName() != null) ? fichier.getName().substring(0,fichier.getName().indexOf('.')) : "";
    Sinon le indexOf permet de repérer la position de la première occurence de '.' or dans ton cas comme une et une seule occurence du caractère '.' est présente rien ne sers d'utiliser un StringTokenizer ou un split (beaucoup trop lourd pour ce genre de découpage de base).


  8. #8
    OxN
    OxN est déconnecté
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    T'as répondu a toute mes question...

    merci encore!

  9. #9
    Membre habitué
    Avatar de Tifauv'
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 102
    Points : 129
    Points
    129
    Par défaut
    Juste une remarque sur la portabilité de la méthode.
    Sous Unix, les fichiers cachés commencent par un '.', et ce code ne marchera plus. Je ne sais pas à quoi va te servir ce code, ni si tu l'utilisera sous un Unix un jour, mais fais attention.
    C'est du vécu !

    L'utilisation de lastIndexOf() au lieu de indexOf() serait peut-être meilleure...
    A toi de voir.
    - Un pointeur, c'est comme un fusil chargé mal reglé avec la gachette qui s'appuie toute seule des fois.
    - Nan nan nan ça c'est le C. Un pointeur, c'est la même chose, mais avec le Quad Damage.

  10. #10
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Alors juste pour chipoter un peu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int index = -1;
    String nomCourt = (fichier.getName() != null) ? ((index = fichier.getName().lastIndexOf(".")) == -1) ? fichier.getName() : fichier.getName().substring(0,fichier.getName().lastIndexOf('.')) : "";
    Comme ca tu vires la derniere extension si il y a plusieurs "." dans le nom de fichier
    Et si il n'y a pas de "." dans le nom, ca te retourne le nom et pas une exception
    Et si qqun essaye de lire ton code il aura mal la tete comme ca

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  11. #11
    Membre habitué
    Avatar de Tifauv'
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 102
    Points : 129
    Points
    129
    Par défaut
    +1
    - Un pointeur, c'est comme un fusil chargé mal reglé avec la gachette qui s'appuie toute seule des fois.
    - Nan nan nan ça c'est le C. Un pointeur, c'est la même chose, mais avec le Quad Damage.

  12. #12
    Membre habitué
    Profil pro
    Devops
    Inscrit en
    Août 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Devops

    Informations forums :
    Inscription : Août 2006
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    C'est peut-être un vieux poste mais comme on tombe dessus assez rapidement, j'aimerai avoir une confirmation de la part du forum:

    Dans quel condition un java.io.File peut avoir un nom NULL ? (c.a.d. file.getName() == null)

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    (c.a.d. file.getName() == null) La tu compares deux instances de String et pas deux Strings!

    Tentes un file.getName().equals(null)

  14. #14
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Pilodermann Voir le message
    (c.a.d. file.getName() == null) La tu compares deux instances de String et pas deux Strings!

    Tentes un file.getName().equals(null)
    Euh... En principe rien ne devrait jamais être égal à null -_-°. En particulier aucune String n'est égale à null.
    Donc pour vérifier qu'une variable de type String (ou n'importe quel Object) est null, il faut bel et bien utiliser l'opérateur de référence, ==

    par ailleurs, File.getName() ne renvoie absolument jamais null, et donc, aussi bien file.getName() == null que file.getName().equals(null) renverront toujours false.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Batch] Récupérer le nom du fichier sans l'extension à partir du chemin complet
    Par mathieu_r dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2014, 12h10
  2. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  3. Réponses: 3
    Dernier message: 30/01/2006, 16h24
  4. Récupérer le nom du fichier sans le chemin d'accès
    Par bianconeri dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2006, 16h02
  5. Comment récupérer le nom du fichier sans le chemin ?
    Par st0nky dans le forum Débuter
    Réponses: 3
    Dernier message: 08/12/2005, 11h01

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