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;
					}	
				}
			}
	}
 
 }
 
}