2010-05-20 19 views

Respuesta

9

http://java.sun.com/j2se/1.6.0/docs/api/java/io/File.html#setReadOnly%28%29

File file = new File("foo.bar"); 
if(file.setReadOnly()) { 
    System.out.println("Successful"); 
} 
else { 
    System.out.println("All aboard the fail train."); 
} 

Antes java6; no se puede deshacer esto. Para evitar esto, se ponen en File.setWritable(boolean) que puede ser utilizado como tal

File file = new File("foo.bar"); 
if(file.setWritable(false)) { 
    System.out.println("Successful"); 
} 
else { 
    System.out.println("All aboard the fail train."); 
} 

if(file.setWritable(true)) { 
    System.out.println("Re-enabled writing"); 
} 
else { 
    System.out.println("Failed to re-enable writing on file."); 
} 
2
final File f = new File(...); 
f.setWritable(true); 

Cambiará premissions a escribible (no de solo lectura).

Nota: esto puede no funcionar todas las veces, ya que el FileSystem subyacente puede denegar la solicitud. Pero funciona en la mayoría de los archivos en sus discos duros.

+0

¿No quiere decir 'f.setWritable (false);' para que sea de solo lectura? – corsiKa

+0

@Glowcoder: Tal vez malinterpreté que el "archivo de desmarque es de solo lectura". Pensé que significa hacerlo * no * "solo lectura", que es escribible, que es "verdadero", ¿verdad? – Pindatjuh

+0

oh wow, podrías estar ahí mismo. Tal vez soy yo quien malinterpretó la pregunta. – corsiKa

Cuestiones relacionadas