Bonjour à tous,


J'ai un problème avec les droits d'accès aux fichiers en java sous windows, canRead et canWrite me renvoient toujours true.

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
16
public static void main(String args[]) throws java.io.IOException {
 
	File fil = new File("D:\\test");
	if (fil.exists()) {
	    System.out.println("Fichier trouve");
 
	    System.out.println("Nom de fichier : " + fil.getName());
	    System.out.println("Chemin du fichier : " + fil.getPath());
	    System.out.println("Chemin absolu : " + fil.getAbsolutePath());
	    System.out.println("Droit de lecture : " + fil.canRead());
	    System.out.println("Droit d'ecriture : " + fil.canWrite());
 
	} else {
	    System.out.println("Fichier absent");
	}
    }
Et le résultat produit sur un dossier sur lequel j'ai retiré tous les droits:

Fichier trouve
Nom de fichier : test
Chemin du fichier : D:\test
Chemin absolu : D:\test
Droit de lecture : true
Droit d'ecriture : true

J'ai essayé une autre méthode :
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
    public static void main(String args[]) throws java.io.IOException {
 
	File fil = new File("D:\\test");
	if (fil.exists()) {
	    System.out.println("Fichier trouve");
 
	    System.setSecurityManager(new SecurityManager());
 
	    System.out.println("Nom de fichier : " + fil.getName());
	    System.out.println("Chemin du fichier : " + fil.getPath());
	    System.out.println("Chemin absolu : " + fil.getAbsolutePath());
	    System.out.println("Droit de lecture : " + fil.canRead());
	    System.out.println("Droit d'ecriture : " + fil.canWrite());
 
	} else {
	    System.out.println("Fichier absent");
	}
    }
Par contre voila le résultat sur un dossier où j'ai tous les droits :
Fichier trouve
Nom de fichier : test
Chemin du fichier : D:\test
Chemin absolu : D:\test
Exception in thread "main" java.security.AccessControlException: access denied (java.io.FilePermission D:\test read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
at java.io.File.canRead(File.java:689)
at TestFiles.main(TestFiles.java:20)

J'ai trouvé une page parlant d'un bug sur la version 1.5.0, j'utilise la JRE 1.6.03.
http://bugs.sun.com/bugdatabase/view...bug_id=6203387


Quelqu'un a t il une idée de comment je pourrais faire ? ou me dire ce qui cloche dans mon code ?

Merci d'avance