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 :
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
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); } } }
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
Partager