Bonjour,

J'ai codé une méthode récursive de parcours d'arborescence qui ajoute tous les fichiers dans un HashMap.

Je m'aperçois que File.isFile() ne considère pas les liens symboliques (ni leurs cibles) comme des fichiers, et pourtant, un ls -la me le confirme.

Le but de mon programme est de monitorer une arborescence de fichiers. Je ne peux donc pas oublier les cibles des liens symboliques ! Quelqu'un a t'il une idée ?

Merci d'avance !

PS: voici mon code :
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
 
private void init(File dir) {
	String path;
 
	for (File f : dir.listFiles()) {
		if (f.isFile()) {
			path = f.getAbsolutePath();
			files.put(path, new MonitoredFile(path));
		}
		if (f.isDirectory() && f.getName().compareTo(".") != 0 || f.getName().compareTo("..") != 0) {
			System.out.println("Scan recursif dans : " + f.getName());
			this.init(f);
		}
	}
}
Le dossier qui me pose problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
[Macintosh-4]/Users/Archaon/Documents/.parallels-vm-directory > la
total 24
drwxr-xr-x   5 Archaon  Archaon  170 21 fév  2008 .
drwx------  18 Archaon  Archaon  612 25 sep 19:19 ..
lrwxr-xr-x   1 Archaon  Archaon   62 21 fév  2008 Debian Linux -> /Users/Archaon/Documents/Parallels/debian-etch-lamp/debian.pvs
lrwxr-xr-x   1 Archaon  Archaon   64 16 fév  2008 My Boot Camp -> /Users/Archaon/Documents/Parallels/My Boot Camp/My Boot Camp.pvs
lrwxr-xr-x   1 Archaon  Archaon   64 16 fév  2008 Ubuntu Linux -> /Users/Archaon/Documents/Parallels/Ubuntu Linux/Ubuntu Linux.pvs