Bonjour à tous !
Je souhaite parcourir les dossiers/fichiers de mon ordinateur.
Cependant j'ai un problème lorsque le dossier ne peut pas être lu/écrit (quand on a la jolie petite fenètre (sous Windows) qui dit 'Accès refusé')

Voilà le code que j'utilise :
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
public class ListDossier {
	private String s_racine;
	public ListDossier (String s_vracine) {
		s_racine = s_vracine;
	}
 
	public void v_outFileName(String s_dir) {
		if (s_dir.equals("")) {
			s_dir = s_racine;
		}
 
		File F_fichiers = new File(s_dir);
 
		if (F_fichiers.isDirectory()) {
			File[] s_fname = F_fichiers.listFiles();
			System.out.println(s_dir + "(" + s_fname.length + " fichiers).");
			for (int  i = 0; i < s_fname.length; i++) {
				if (s_fname[i].canWrite() && s_fname[i].exists()) {
					v_outFileName(s_fname[i].toString());
				}
			}
		}
	}
}
Voilà ce que Eclipse renvoie :
C: (44 fichiers).
Exception in thread "main" java.lang.NullPointerException
at ListDossier.v_outFileName(ListDossier.java:19)
at ListDossier.v_outFileName(ListDossier.java:22)
at MyMain.main(MyMain.java:8)
Sachant que le premier dossier est '%SystemData%' dont je n'ai pas accès.
D'après ce que j'ai pu lire, avec canWrite + canExist on peut prouver que c'est un dossier à accès réduit, mais ça ne veut pas...

[J'ai testé en mettant Program Files et ça fonctionne jusqu'au premier dossier de la même sorte...]

Merci à tous de m'avoir lu, en espérant que le sujet n'a pas déjà été abordé

Bonne journée !