Afficher le contenu d'un répertoire
Résolu
estrellas6
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
estrellas6 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
estrellas6 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un répertoire "fichier" dans le Disque local(:D).
Le but de mon programme est d'afficher les fichiers de ce répertoire "fichier" :
Voici le code de mon programme:
package IO;
import java.io.File;
public class Fichier {
public static void main(String[] args) {
File file=null;
for(File racine:file.listRoots()){
try {
for(File nom : racine.listFiles()){
if (nom.getName()=="fichier"){
try{
for(File prenom:nom.listFiles()){
System.out.println(prenom.getName());
}
}
catch (NullPointerException e) {}
}
}
}
catch (NullPointerException e) {}
}
}
}
Je ne vois pas c'est quoi le problème ???
J'ai un répertoire "fichier" dans le Disque local(:D).
Le but de mon programme est d'afficher les fichiers de ce répertoire "fichier" :
Voici le code de mon programme:
package IO;
import java.io.File;
public class Fichier {
public static void main(String[] args) {
File file=null;
for(File racine:file.listRoots()){
try {
for(File nom : racine.listFiles()){
if (nom.getName()=="fichier"){
try{
for(File prenom:nom.listFiles()){
System.out.println(prenom.getName());
}
}
catch (NullPointerException e) {}
}
}
}
catch (NullPointerException e) {}
}
}
}
Je ne vois pas c'est quoi le problème ???
A voir également:
- Afficher le contenu d'un répertoire
- Afficher appdata - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Word a trouvé du contenu illisible - Guide
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Afficher taille dossier windows - Guide
2 réponses
Si tu affichais le message des Exceptions lorsqu'il y en a, tu sauras peut-être ce que c'est le problème !!
En l'occurrence tu as un NullPointerException sur cette ligne :
En effet "listFiles" renvoie null lorsque le fichier n'est pas un répertoire, il faut donc penser à faire ce test avant de faire ta boucle !
Remarque : l'opérateur == compare uniquement l'instance de deux objets, en aucun cas leur valeur, il n'y a donc aucune chance que ton test getName()=="fichier" renvoie true, en plus tu fais une boucle sur listRoots (c'est à dire sur tous les lecteurs) alors que ta racine c'est le répertoire "D:/fichier" alors ça ne fera pas ce que tu veux...
En l'occurrence tu as un NullPointerException sur cette ligne :
for (File nom : racine.listFiles())
En effet "listFiles" renvoie null lorsque le fichier n'est pas un répertoire, il faut donc penser à faire ce test avant de faire ta boucle !
Remarque : l'opérateur == compare uniquement l'instance de deux objets, en aucun cas leur valeur, il n'y a donc aucune chance que ton test getName()=="fichier" renvoie true, en plus tu fais une boucle sur listRoots (c'est à dire sur tous les lecteurs) alors que ta racine c'est le répertoire "D:/fichier" alors ça ne fera pas ce que tu veux...
public static void display(File path) { System.out.println(path.getAbsolutePath()); if (path.isDirectory()) for (File file : path.listFiles()) display(file); } public static void main(String[] args) { display(new File("D:/fichier")); }
Pour mon programme le problème été la condition de if c'été
if(nom.getName.equals("fichier")) au lieu if(nom.getName()==("fichier"))
Maintenant avec les deux programmes y a un problème lorsque je veux afficher le contenu de c:/programmes (c'est le program file) le programme ne compile pas juste pour ce dossier
if(nom.getName.equals("fichier")) au lieu if(nom.getName()==("fichier"))
Maintenant avec les deux programmes y a un problème lorsque je veux afficher le contenu de c:/programmes (c'est le program file) le programme ne compile pas juste pour ce dossier