class methods
|
atime
|
File.atime( dateiName )
-> eineZeit |
|
Gibt den Zeitpunkt des letzten Dateizugriffs (access time, d.Red.) zurück.
File.atime("testfile") |
» |
Sun Mar 04 23:25:54 CST 2001 |
|
basename
|
File.basename( dateiName[, einSuffix] )
-> einNeuerString |
|
Gibt das letzte Element des in dateiName übergebenen Dateinamens zurück.
Dieser muss mit nach vorn geneigten Strichen geformt werden (``/ ''), und
zwar unabhängig vom Separator, der im lokalen dateisystem benutzt wird. Wenn
einSuffix angegeben wird und dieses auch am Ende des Dateinamens steht,
wird es entfernt.
File.basename("/home/gumby/work/ruby.rb") |
» |
"ruby.rb" |
File.basename("/home/gumby/work/ruby.rb", ".rb") |
» |
"ruby" |
|
chmod
|
File.chmod( einModusInt[, dateiName]+ )
-> einInteger |
|
Ändert die Zugriffsrechte für die angegebene(n) Datei(en) entsprechend den
permission bits, die in einModusInt übergeben werden.
Die Ausführung erfolgt system-spezifisch (vgl. Anfang dieses Abschnitts).
Unter Unix-Systemen siehe auch chmod(2) für weitere Details.
Die Zahl der geänderten Dateien wird zurückgegeben.
File.chmod(0644, "testfile", "out") |
» |
2 |
|
chown
|
File.chown( einBesitzerInt,
eineGruppeInt[, dateiName]+ )
-> einInteger |
|
Ändert den Besitzer und die Gruppe für die angegebene(n) Datei(en) auf die übergebene
numerischen Besitzer-Id und Gruppen-Id.
Nur Prozesse mit dem superuser-Privileg können den Besitzer einer Datei wechseln. Der aktuelle
Besitzer darf die Gruppe der Datei auf jede der Gruppen setzen, denen er selbst angehört.
Ein Wert von nil oder -1 für Besitzer-Id oder Gruppen-Id wird ignoriert.
Die Methode gibt die Anzahl der bearbeiteten Dateien zurück.
File.chown(nil, 100, "testfile")
|
|
ctime
|
File.ctime( dateiName )
-> eineZeit |
|
Gibt den Zeitpunkt zurück, an dem die Datei zum letzten Mal geändert (change time, d.Red.)
wurde (genau genommen der Zeitpunkt, an dem die Verzeichnisinformation über die Datei geändert wurde,
nicht die Datei selbst).
File.ctime("testfile") |
» |
Sun Mar 04 23:28:25 CST 2001 |
|
delete
|
File.delete( [dateiName]+ )
-> eineFixnum |
|
Löscht die benannte(n) Datei(en). Gibt die ANzahl der bearbeiteten Dateien zurück.
Siehe auch Dir.rmdir .
File.new("testrm", "w+").close |
» |
nil |
File.delete("testrm") |
» |
1 |
|
dirname
|
File.dirname( dateiName )
-> dateiName |
|
Gibt alle Komponenten des Dateinamens in dateiName ausser den letzten zurück.
Der Dateiname muss unter Verwendung von vorwärts Schrägstrichen (``/ '') gebildet sein,
und zwar unabhängig vom im lokalen System verwendeten Separator.
File.dirname("/home/gumby/work/ruby.rb") |
» |
"/home/gumby/work" |
|
expand_path
|
File.expand_path( dateiName[, einDirString] )
-> dateiName |
|
Konvertiert einen Pfad in eine absolute Pfadangabe. Relative Pfadangaben werden aus dem
aktuellen Arbeitsverzeichnis referenziert, wenn einDirString nicht als Ausgangspunkt
mitgegeben wird. Der angegebene Pfadname kann mit einem ``~ '' beginnen, so dass
ausgehend vom Stammverzeichnis des Prozess-Besitzers weiter verzweigt wird (dazu muss die
Umgebungsvariable HOME korrekt gesetzt sein).
``~ user'' setzt beim Stammverzeichnis des genannten Benutzers an.
File.expand_path("~oracle/bin") |
» |
"/home/oracle/bin" |
File.expand_path("../../bin", "/tmp/x") |
» |
"/bin" |
|
ftype
|
File.ftype( dateiName )
-> fileTyp |
|
Identifizerit den Typ der genannten (logischen) Datei. Es wird einer der folgenden Strings zurückgegeben:
``file '' (normale Datei, d.Red.),
``directory '' (Verzeichnis, d.Red.),
``characterSpecial '' (Hardwarekomponenten, sog. character devices, wie z.B. Bildschirme oder Drucker d.Red.),
``blockSpecial '' (Hardwarekomponenten, sog. block devices, wie z.B. Festplatten, Massenspeicher d.Red.),
``fifo '' (Pipes, die der Interprozesskommunikation dienen sind FIFO-Stacks, d.Red.),
``link '' (symbolischer Link, der z.B. für Aliases unter linux/unix eingesetzt wird, d.Red.) oder
``socket '' (Socketverbindungen, d.Red.).
File.ftype("testfile") |
» |
"file" |
File.ftype("/dev/tty") |
» |
"characterSpecial" |
File.ftype("/tmp/.X11-unix/X0") |
» |
"socket" |
|
join
|
File.join( [einString]+ )
-> dateiName |
|
Gibt einen neuen String zurück, der aus den Strings mit Hilfe von
File::SEPARATOR
gebildet wird (vgl. Tabelle 22.2).
File.join("usr", "mail", "gumby") |
» |
"usr/mail/gumby" |
|
link
|
File.link( einAlterName, einNeuerName )
-> 0 |
|
Erstellt einen neuen Namen für eine bestehende Datei mit einem harten Link.
Die Methode überschreibt aNewName nicht, wenn dieser bereits existiert (es
wird dann eine Unterklasse von SystemCallError werfen).
Die Methode ist nicht auf allen Plattformen verfügbar.
File.link("testfile", ".testfile") |
» |
0 |
IO.readlines(".testfile")[0] |
» |
"This is line one\n" |
|
lstat
|
File.lstat( dateiName )
-> einStat |
|
Dieselbe Methode wie IO#stat .
Folgt jedoch nicht dem letzten symbolischen Link, sondern gibt den Link zurück.
File.symlink("testfile", "link2test") |
» |
0 |
File.stat("testfile").size |
» |
66 |
File.lstat("link2test").size |
» |
8 |
File.stat("link2test").size |
» |
66 |
|
mtime
|
File.mtime( dateiName )
-> eineZeit |
|
Die Methode gibt den Zeitpunkt der letzten Änderung zurück (modification time, d.Red.).
File.mtime("testfile") |
» |
Tue Feb 27 00:11:18 CST 2001 |
|
new
|
File.new( dateiName, einModusString="r" )
-> file File.new( dateiName[, eineModusNum[einePermNum]] )
-> file |
|
Öffnet die in dateiName benannte Datei in dem mit einModusString
bezeichneten Modus (Voreinstellung ist ``r'') und gibt ein neues File -Objekt
zurück. Vgl. Tabelle 22.5 für eine Beschreibung von aModeString.
Der Dateimodus kann optional in einer Fixnum durch ver-oder-ung
der in Tabelle 22.3 beschriebenen Flags bestimmt werden.
Optionale permission bits können in einePermNum übergeben werden.
Die Modus- und Zugriffsrechte-Bits sind Plattform-abhängig; unter Unix, vgl. open(2) für Details.
f = File.new("testfile", "r")
f = File.new("newfile", "w+")
f = File.new("newfile", File::CREAT|File::TRUNC|File::RDWR, 0644)
|
|
open
|
File.open( dateiName, einModusString="r" )
-> file File.open( dateiName[, eineModusNum[einePermNum]] )
-> file File.open( dateiName, einModusString="r" )
{| file | block }-> nil File.open( dateiName[, eineModusNum[einePermNum]] )
{| file | block }-> nil
|
|
Wenn kein zugehöriger Codeblock definiert ist, ist open ein Synonym für
File.new . Wenn der
optionale Codeblock angegeben ist, wird ihm file als Argument übergeben. Die Datei
wird in diesem Fall automatisch geschlossen, wenn der Codeblock endet. In dieser Instanz gibt
File.open nil zurück.
|
readlink
|
File.readlink( dateiName )
-> dateiName |
|
Gibt den angegebenen symbolischen Link als String zurück.
Dei Methode steht nicht auf allen Plattformen zur Verfügung.
File.symlink("testfile", "link2test") |
» |
0 |
File.readlink("link2test") |
» |
"testfile" |
|
rename
|
File.rename( einAlterName, einNeuerName )
-> 0 |
|
Bennent die angegebene Datei mit dem neuen Namen.
Wirft einen SystemCallError wenn die Datei nicht umbenannt werden kann.
File.rename("afile", "afile.bak") |
» |
0 |
|
size
|
File.size( dateiName )
-> einInteger |
|
Gibt die Dateigröße in Bytes zurück.
File.size("testfile") |
» |
66 |
|
split
|
File.split( dateiName )
-> einArray |
|
Teilt den angegebenen String in die Verzeichnis- und die Datei-Komponente und gibt sie in einem
2-Elemente Array zurück. Siehe auch File.dirname und
File.basename .
File.split("/home/gumby/.profile") |
» |
["/home/gumby", ".profile"] |
|
stat
|
File.stat( dateiName )
-> einStat |
|
Gibt ein File::Stat -Objekt für die genannte Datei
(vgl. File::Stat ).
File.stat("testfile").mtime |
» |
Tue Feb 27 00:11:18 CST 2001 |
|
symlink
|
File.symlink( einAlterName, einNeuerName )
-> 0 oder nil |
|
Erstellt einen symbolischen Link, der einNeuerName heisst, für die existierende
Datei einAlterName.
Die Methode gibt nil auf allen Plattformen zurück, die symbolische Links nicht unterstützen.
File.symlink("testfile", "link2test") |
» |
0 |
|
truncate
|
File.truncate( dateiName, einInteger )
-> 0 |
|
Schneidet die Datei dateiName so ab, dass sie etwa einInteger Bytes lang ist.
Die Methode steht nicht auf allen Plattformen zur Verfügung.
f = File.new("out", "w") |
f.write("1234567890") |
» |
10 |
f.close |
» |
nil |
File.truncate("out", 5) |
» |
0 |
File.size("out") |
» |
5 |
|
umask
|
File.umask( [einInteger] )
-> einInteger |
|
Gibt den aktuellen Wert von umask für diesen Prozess zurück.
Wenn das optionale Argument definiert ist, wird umask auf dessen Wert gesetzt, sowie der vorherige
Wert zurückgegeben. Umask Werte werden von den Standard-Zugriffsrechten abgezogen; eine
umask von 0222 würde folglich jedem (Besitzer, Gruppe und Allen) nur Leserechte auf eine Datei
geben. Siehe auch die Diskussion über Zugriffsrechte in diesem Abschnitt.
File.umask(0006) |
» |
18 |
File.umask |
» |
6 |
|
unlink
|
File.unlink( [dateiName]+ )
-> einInteger |
|
Synonym für File.delete .
Siehe auch Dir.rmdir .
|
utime
|
File.utime( eineZugriffsZeit,
eineModusZeit[, dateiName]+ )
-> eineFixnum |
|
Ändert die Zugriffs- und Änderungszeiten für mehrere Dateien. Die Zeitangaben müssen Instanzen der Klasse
Time oder Ganzzahlen sein, die die Anzahl der Sekunden der Epoche darstellen (vgl. hierzu
die Klasse Time . Gibt die Anzahl der bearbeiteten Dateien zurück.
Die Methode steht nicht auf jeder Plattform zur Verfügung.
File.utime(0, 0, "testfile") |
» |
1 |
File.mtime("testfile") |
» |
Wed Dec 31 18:00:00 CST 1969 |
File.utime(0, Time.now, "testfile") |
» |
1 |
File.mtime("testfile") |
» |
Sun Mar 04 23:28:25 CST 2001 |
|
instance methods
|
atime
|
file.atime
-> eineZeit |
|
Gibt den Zeitpunkt des letzten Zugriffs auf file zurück bzw. Epoche wenn auf file
bisher nicht zugegriffen wurde.
File.new("testfile").atime |
» |
Wed Dec 31 18:00:00 CST 1969 |
|
chmod
|
file.chmod( eineModusInt )
-> 0 |
|
Ändert die permission bits auf file in die in eineModusInt vorgegebenen Werte.
Die tatsächlichen Auswirkungen sind Plattform-abhängig; unter Unix, vgl. chmod(2) für Details.
Siehe auch die Diskussion von Zugriffsrechten weiter oben in diesem Abschnitt.
f = File.new("out", "w"); |
f.chmod(0644) |
» |
0 |
|
chown
|
file.chown( eineBesitzerId, eineGruppenId )
-> 0 |
|
Ändert den Eigentümer sowie die Gruppe von file in die vorgegebenen (numerischen) Werte.
Die Methode kann nur von Prozessen mit superuser-Privilegien angewendet werden. Der aktuelle Besitzer
der Datei kann die Gruppenzugehörigkeit zu jeder Gruppe bestimmen, der er selbst angehört.
Ein Wert von nil bzw. -1 für BesitzerId oder GruppenId wird ignoriert.
File.new("testfile").chown(502, 1000)
|
|
ctime
|
file.ctime
-> eineZeit |
|
Gibt den Zeitpunkt der letzten Änderung an file zurück (d.h., der Zeitpunkt, an dem die
Verzeichnis-Information über die Datei geändert wurde, nicht die Datei selbst).
File.new("testfile").ctime |
» |
Sun Mar 04 23:28:25 CST 2001 |
|
flock
|
file.flock ( eineSperrKonstante )
-> 0 oder false |
|
Sperrt bzw. entsperrt eine Datei abhängig von eineSperrKonstante (eine
logische ODER-Verknüpfung der Werte aus Tabelle 22.4 weiter unten).
Die Methode gibt false zurück, wenn File::LOCK_NB
angegeben wurde und die Operation anderenfalls blockiert worden wäre.
Die Methode steht nicht auf allen Plattformen zur Verfügung.
File.new("testfile").flock(File::LOCK_UN) |
» |
0 |
|
lstat
|
file.lstat
-> einStat |
|
Dieselbe Methode wie IO#stat .
Jedoch wird dem letzten symbolischen Link im Pfad nicht gefolgt, sondern der link selbst wird übergeben.
File.symlink("testfile", "link2test") |
» |
0 |
File.stat("testfile").size |
» |
66 |
f = File.new("link2test") |
f.lstat.size |
» |
8 |
f.stat.size |
» |
66 |
|
mtime
|
file.mtime
-> eineZeit |
|
Gibt den Zeitpunkt der letzten Modifikation für file zurück.
File.new("testfile").mtime |
» |
Sun Mar 04 23:28:25 CST 2001 |
|
path
|
file.path
-> dateiName |
|
Gibt den Pfadnamen zurück, der benötigt wird, um file als einen String anzugeben.
File.new("testfile").path |
» |
"testfile" |
|
truncate
|
file.truncate( einInteger )
-> 0 |
|
Schneidet file bei ungefähr einInteger Bytes ab. Die Datei muss für den
Schreibzugriff geöffnet sein.
Die Methode steht nicht auf allen Plattformen zur Verfügung.
f = File.new("out", "w") |
f.syswrite("1234567890") |
» |
10 |
f.truncate(5) |
» |
0 |
f.close() |
» |
nil |
File.size("out") |
» |
5 |
|