2010-05-20 15 views

risposta

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."); 
} 

Prima java6, non si poteva annullare questo. Per aggirare il problema, hanno messo in File.setWritable(boolean) che può essere usato come modo

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); 

cambierà premissions a scrivibile (non di sola lettura).

Nota: questo potrebbe non funzionare tutte le volte, in quanto il FileSystem sottostante può rifiutare la richiesta. Ma funziona sulla maggior parte dei file sul tuo hard disk.

+0

Non intendete "f.setWritable (false);" per renderlo di sola lettura? – corsiKa

+0

@Glowcoder: Forse ho interpretato male il "file non valido è di sola lettura". Pensavo significasse renderlo * non * "di sola lettura", che è scrivibile, che è 'true', giusto? – Pindatjuh

+0

oh wow, potresti essere proprio lì. Forse sono io che ho interpretato male la domanda. – corsiKa

Problemi correlati