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 :
Et le résultat produit sur un dossier sur lequel j'ai retiré tous les droits:
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"); } }
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 :
Par contre voila le résultat sur un dossier où j'ai tous les droits :
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"); } }
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
Partager