Bonjour,
En regardant la class File et ses méthodes (list.Files(), listRoots(), ...) ,
J’ai pensé à l’exercice suivant:
- Rechercher sur tout le disque dur un fichier Quelconque
Voici le programme que j'ai créé : pas d'erreur de syntaxe
Mais le problème , c’est de trouver le fichier et stopper la recherche , une fois le fichier trouvé et là le résultat n'est pas au rendez-vous
Si vous pouvez me signaler l'erreur , j'en serais très heureux
Pour l'exemple, le fichier à rechercher est "Readme_Russian.txt"
J'utilise 2 classes
public class DisqueDur : classe principale
class Recursif : qui me permet la recherche récursive ds les sous dossiers
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 package disque_parcourir; import java.io.File; import java.io.IOException; class Recursif { public static File liste; public static String rech; public static boolean stop = false; public static boolean lister (File dir, String rechercherecur) { liste = dir; rech = rechercherecur; System.out.println(liste + " : DIR"); File[] filesdirectory = liste.listFiles(); if (filesdirectory!=null) { for (int j3 = 0; j3 < filesdirectory.length; j3++) { if(filesdirectory[j3].isDirectory()) { if(filesdirectory[j3]!=null) Recursif.lister(filesdirectory[j3],rech); } else { System.out.println(filesdirectory[j3]); String analyserecursif = filesdirectory[j3].getAbsolutePath(); if( analyserecursif.endsWith(rech) == true) { System.out.println("le fichier recherché a été trouvé: " + rechercherecur); System.out.println("Voici le PATH (recursif): " + analyserecursif); stop = true; break; } } } } return stop; } }
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 public class DisqueDur { public static void main(String args[]) throws IOException { String recherche = "Readme_Russian.txt"; boolean sortie = false; File[] racines = File.listRoots(); for(int i=0; i<racines.length; i++) { if (sortie == true) break; System.out.println(racines[i]); File[] fichiers = racines[i].listFiles(); if (fichiers!=null) { for (int j=0; j<fichiers.length; j++) { if(fichiers[j].isDirectory()) { Recursif.lister(fichiers[j],recherche); if (Recursif.lister(fichiers[j],recherche) == true) { sortie = true; break; } } else { System.out.println(fichiers[j]); String analyse = fichiers[j].getAbsolutePath(); if( analyse.endsWith(recherche) == true) System.out.println("le fichier recherché a été trouvé: " + recherche); System.out.println("Voici le PATH: " + analyse); sortie = true; break; } } } } } }
Partager