Insel: Dateiattribute verändern
verändern, wobei viele Methoden seit Java 6 neu sind.
class java.io.File
implements Serializable, Comparable<File>
boolean setReadOnly()
Setzt die Datei auf nur-lesend. Liefert »wahr«, wenn die Änderung möglich war.
boolean setExecutable( boolean executable, boolean ownerOnly )
boolean setReadable( boolean readable, boolean ownerOnly )
boolean setWritable( boolean writable, boolean ownerOnly )
Setzt das Recht zum Ausführen/Lesen/Schreiben der Datei. Ist ownerOnly true,
gilt das Recht nur für den Benutzer, sonst für alle.
boolean setExecutable( boolean executable )
boolean setReadable( boolean readable )
boolean setWritable( boolean writable )
Aufruf von setXXX() mit zweiten Argument true.
Beispiel Lege eine neue temporäre Date an und teste das Lesen und Verändern
des Lese-Schreib-Attributs. Nach dem Test lösche die Datei wieder.
File f = File.createTempFile( "bla", "blub" );
System.out.printf( "readable=%s, writable=%s%n", f.canRead(), f.canWrite() );
f.setReadOnly();
System.out.printf( "readable=%s, writable=%s%n", f.canRead(), f.canWrite() );
f.setWritable( true );
System.out.printf( "readable=%s, writable=%s%n", f.canRead(), f.canWrite() );
f.deleteOnExit();
Die Ausgabe ist:
readable=true, writable=true
readable=true, writable=false
readable=true, writable=true
setLastModified() und die setXXX() sind die einzigen Funktionen, die auf dem
Datei-Objekt wirklich eine Änderung ausführen. Insofern muss die Aussage von Sun
in der API-Dokumentation genau genommen werden: “Instances of the File class are
immutable; that is, once created, the abstract pathname represented by a File
object will never change“. Nur der Dateiname ist immutable, aber nicht die
Zustände.

0 Comments:
Kommentar veröffentlichen
<< Home