2009-07-29 30 views

Respuesta

17

Si está utilizando Java 6, clase File le da setExecutable, setWritable, etc. Véase: http://java.sun.com/javase/6/docs/api/java/io/File.html

En versiones antiguas de Java esto no es posible; usted tiene que exec comandos del sistema operativo para hacer eso:

de Windows:

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

Unix:

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

+1 No sabía acerca de los nuevos métodos en java6 – skaffman

+0

chmod no funciona en windows, attrib -R o + R cambiará el indicador de solo lectura –

+0

Es posible que desee ser un poco más restrictivo con el Permiso de Unix, por cierto. 777 le da a todo el mundo todo :-) –

10

El nuevo paquete de Java 7 java.nio.file.attribute hace que todo esto sea mucho más fácil. Proporciona vistas en el conjunto completo de atributos de archivos, incluido Posix file permissions.

+8

En Windows 7, intentando obtener atributos de Posix, lanza UnsupportedOperationException. – gerardw

+3

¿Cómo resolvemos el problema en Windows sin tener que ejecutar un comando? ¿Existe una biblioteca común que podamos usar para configurar permisos en todos los sistemas operativos? – saibharath

+0

¡Esta respuesta es un poco corta, pero el paquete java.nio.file.attribute también incluye el manejo de ACL para Windows! –

Cuestiones relacionadas