Obtenir l'extension d'un fichier en java [Fermé]

Signaler
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
-
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
-
Bonjour,
comment obtenir l'extenssion d'un fichier en java ou bien kel methode qui peut faire sa?

et merci d'avence

3 réponses

Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
331
Hello Yuri,
Il n'y a pas de méthode pour faire cela (en général ça ne sert à rien une extension).

Si tu veux récupérer toi même l'extension, il te faut utiliser la méthode split(".") de la classe String. Tu récupère la dernière entrée du tableau retourné et le tour est joué !

Cordialement,
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
merci bcp
Messages postés
5
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
1 juillet 2013
1
"chemin" peut être juste le nom du fichier :

String chemin = "mon/chemin/de/fichier/Fichier.toto.txt";
String ext = chemin.substring(chemin.lastIndexOf(".")); //récupère l'extention
System.out.println(ext); //-> .txt
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 858
Attention : il faut prévoir le cas où il n'y a pas d'extension (celle-ci n'est pas obligatoire).
En particulier se méfier de chemins d'accès contenant un point dans le nom du dossier ou des fichiers cachés sous Linux dont le nom commencent par un point (mais qui n'est pas l'extension !)

Voici quelques exemples de chemin d'accès et de résultat attendu

"C:\test\test.txt"  ou  "/test/test.txt"  --> "txt"

"C:\test\test"      ou  "/test/test"      --> ""

"C:\test.test\test" ou  "/test.test/test" --> ""

"C:\test\.test"     ou  "/test/.test"     --> ""
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
j'ai un autre pb si tu peux m'aider STP j'ai cet erreur:

Exception in thread "main" java.lang.NullPointerException
at pdf.<init>(pdf.java:30)
at nn.main(nn.java:11)


voila la classe pdf:

import java.io.File;
import java.util.Stack;


public class pdf {
public pdf()
{
Stack<String> pile=new Stack();
String dd="d:/";
String v;
int i;
boolean bol=false;
String h="pdf";
File[] lis=null;
i=0;




while(bol==false)
{
// dd=(String) pile.pop();
File g=new File(dd);

lis=g.listFiles();

i=0;


while(i<lis.length )
{
if(lis[i].isDirectory()==true){pile.push(lis[i].getPath()); }

else {
v=getExtension(lis[i]);
if(h.equals(v)){System.out.println("le fichier"+ lis[i]);}

}
i=i+1;
}

if(!pile.isEmpty()) {dd=(String) pile.pop(); }
else{bol=true;}
}

}





public static String getExtension(File f) {
if(f != null) {
String filename = f.getName();
int i = filename.lastIndexOf('.');
if(i>0 && i<filename.length()-1) {
return filename.substring(i+1).toLowerCase();
}
}
return null;
}

}
et la classe main:


import java.io.IOException;


public class nn {


public static void main (String arguments[]) throws IOException
{


pdf mm=new pdf();

}
}
et merci d'avence.
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
merci de m'avoir repondu l'erreur vien de cette instruction
while(i<lis.length)

et si je change la variable dd="c:/exe" ya pa de pb mé si dd="c:/" ya cet erreur
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
331
Tu développes avec Eclipse?

Ton répertoire d:/ existe bien?
Vérifie la valeur de lis après lis = g.listFiles();

Cordialement,
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
oui je develope avec eclipse le repertoire existe et j'ai verifié lis a des fichier
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
331
Tu as un outil merveilleux dans Eclipse : le débogueur (il est tout simplement génial).
Pour déceler d'où vient ton problème, tu mets un breakpoint sur cette ligne : while(i<lis.length) .

Ensuite, tu lances l'exécution en mode debug (le petit scarabée ou F11), et ton programme va s'arrêter à chaque passage à cette ligne (donc à chaque tour de boucle), et t'indiquer l'état des variables à ce moment là.

Tu vas donc pouvoir trouver à quel moment exactement ton programme plante (en regardant la valeur de i...).

Comprends bien que j'ai assez de difficultés pour t'aider car je n'ai pas le même système de fichiers que toi (et que de mon côté, avec c:/, le programme tourne sans problème).

Cordialement,
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
merci bcp de m'voir aider je vais voir avec debug