2009-07-29 5 views

Répondre

17

Si vous utilisez Java 6, classe File vous donne setExecutable, setWritable, etc. Voir: http://java.sun.com/javase/6/docs/api/java/io/File.html

Sur les anciennes versions de Java cela est impossible; vous devez exec commandes OS pour le faire:

Fenêtres:

Runtime.getRuntime().exec("attrib -r myFile"); 

Unix:

Runtime.getRuntime().exec("chmod 777 myFile"); 
+0

+1 Je ne connaissais pas les nouvelles méthodes dans java6 – skaffman

+0

chmod ne fonctionnera pas dans Windows, attrib -R ou + R changera le drapeau en lecture seule –

+0

Vous voudrez peut-être être un peu plus restrictif avec le Autorisation Unix, btw. 777 donne à tout le monde :-) –

10

Le nouveau package Java 7 java.nio.file.attribute rend tout cela beaucoup plus facile. Il fournit des vues sur l'ensemble complet des attributs de fichier, y compris Posix file permissions.

+8

Sous Windows 7 tentant d'obtenir des attributs Posix throws UnsupportedOperationException. – gerardw

+3

Comment allons-nous résoudre le problème dans Windows sans avoir à exécuter une commande? Existe-t-il une bibliothèque commune que nous pouvons utiliser pour définir des autorisations sur tous les systèmes d'exploitation? – saibharath

+0

Cette réponse est un peu courte, mais le paquetage java.nio.file.attribute inclut également la gestion de l'ACL pour Windows! –

Questions connexes