1 pièce(s) jointe(s)
Lire tous les fichiers de tous les dossiers d'un répertoire
bonjour,
je viens vers vous car j'ai besoin de votre aide.
j'ai un répertoire dans lequel j'ai plusieurs dossiers, dans chaque dossier j'ai plusieurs fichiers.
j’aimerai lire 1 par 1 chaque fichier de chaque dossier.
voilà mes 2 fonctions :
Code:
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
|
public static void listeRepertoire(File path, List<String> allFiles)
{
if (path.isDirectory())
{
File[] list = path.listFiles();
if (list != null)
{
for (int i = 0; i < list.length; i++)
{
// Appel récursif sur les sous-répertoires
listeRepertoire(list[i], allFiles);
}
}
else
{
System.err.println(path + " : Erreur de lecture.");
}
}
else
{
String currentFilePath = path.getAbsolutePath();
//System.out.println(currentFilePath);
allFiles.add(currentFilePath);
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public void lireTout() throws IOException {
ArrayList<String> allFiles = new ArrayList<String>();
listeRepertoire(new File("C:\\Users\\moi\\Desktop\\bilans batch satelit 2016"), allFiles);
File f;
FileReader fr;
BufferedReader br;
for (String file : allFiles) {
f = new File (file);
fr = new FileReader(f);
br = new BufferedReader(fr);
System.out.println(f.getAbsolutePath());
String ligne = br.readLine();
while (ligne != null)
{
System.out.println(ligne);
}
ligne = br.readLine();
br.close();
fr.close();
}
} |
le problème c'est que la fonction lireTout m'affiche la 1ère ligne du premier fichier en boucle à l'infini.
voilà le repertoire où il y a les dossiers contenant les fichiers :
Pièce jointe 345420
est-ce que vous pouvez m'aider svp :help: