class methods
|
[ ]
|
Dir[ einString ]
-> einArray |
|
Gibt einArray von Dateinamen zurück, die durch die Erweiterung des Musters
in einString gefunden werden.
Bei dem Muster handelt es sich nicht um eine regexp (es ist eher ein shell glob)
und kann folgende Metazeichen enthalten:
 |
** |
Steht für Unterverzeichnisse |
* |
Steht für Null oder mehr Zeichen |
? |
Steht für genau ein beliebiges Zeichen |
[ zeichenSatz ] |
Steht für jedes der im Satz enthaltenen Zeichen. Ein Bereich von Zeichen wird mit
charVon- charBis notiert. Der Zeichensatz kann mit einem
vorangestellten Hochpfeil (^ ) invertiert, d.h. für Treffer ausgeschlossen, werden. |
{ opt, opt, ... } |
Steht für jeden der vorgegebenen optionalen Strings |
 |
Dir["config.?"] |
» |
["config.h"] |
Dir["*.[a-z][a-z]"] |
» |
["main.rb"] |
Dir["*.[^r]*"] |
» |
["config.h"] |
Dir["*.{rb,h}"] |
» |
["main.rb", "config.h"] |
Dir["*"] |
» |
["config.h", "main.rb"] |
|
chdir
|
Dir.chdir( [einString] )
-> 0 |
|
Wechselt das aktuelle Arbeitsverzeichnis auf den angegebenen String.
Wenn kein Argument mitgegeben wird, wird in das in der Umgebungsvariable HOME oder LOGDIR
gespeicherte Verzeichnis gewechselt.
Die Methode wirft einen SystemCallError (wahrscheinlich Errno::ENOENT )
wenn das Zielverzeichnis nicht existiert.
Dir.chdir("/var/spool/mail") |
» |
0 |
Dir.pwd |
» |
"/var/spool/mail" |
|
chroot
|
Dir.chroot( einString )
-> 0 |
|
Diese Methode wechselt für den laufenden Prozess die Wurzel des Dateisystems (oder tut zumindest so).
Sie kann nur von privilegierten Prozessen aufgerufen werden. Die Methode ist nicht auf allen
Plattformen verfügbar. Auf Unix-Systemen finden sich unter chroot(2) ausführlichere Informationen.
Dir.chdir("/production/secure/root") |
|
Dir.chroot("/production/secure/root") |
»0 |
Dir.pwd |
»"/" |
|
delete
|
Dir.delete( einString )
-> 0 |
|
Löscht das angegebene Verzeichnis. Eine Unterklasse von SystemCallError wird
geworfen, wenn das Verzeichnis nicht leer ist.
|
entries
|
Dir.entries( einString )
-> einArray |
|
Die Methode gibt ein Array zurück, das alle Dateinamen in dem angegebenen Verzeichnis enthält. Die Methode
wirft einen SystemCallError falls das angegebene Verzeichnis nicht existiert.
Dir.entries("testdir") |
» |
[".", "..", "config.h", "main.rb"] |
|
foreach
|
Dir.foreach( einString )
{| dateiname | block }-> nil |
|
Die Methode ruft den Codeblock einmal für jeden Eintrag im angegeben Verzeichnis auf.
Dabei wird der Dateiname jedes Eintrags als Argument an den Codeblock übergeben.
Dir.foreach("testdir") {|x| puts("Got " + x) }
|
produces:
Got .
Got ..
Got config.h
Got main.rb
|
|
getwd
|
Dir.getwd
-> einString |
|
Gibt den Pfad zum aktuellen Arbeitsverzeichnis des betreffenden Prozesses als String aus.
Dir.chdir("/tmp") |
» |
0 |
Dir.getwd |
» |
"/tmp" |
|
glob
|
Dir.glob( einString )
-> einArray |
|
Synonym für Dir.[] .
|
mkdir
|
Dir.mkdir( einString[, einInteger] )
-> 0 |
|
Erstellt ein neues Verzeichnis, das nach einString benannt ist. Die Zugriffsrechte können
über den optionalen Parameter einInteger festgelegt werden. Sie können über den Wert von
File.umask modifiziert werden.
Die Zugriffrechte werden unter NT ignoriert.
Die Methode wirft einen SystemCallError wenn das Verzeichnis nicht erstellt werden
kann. Siehe auch die Diskussion zu Berechtigungen später in diesem Abschnitt (bei File , Anm.d.Red.).
|
new
|
Dir.new( einString ) -> einDir |
|
Gibt ein neues Verzeichnis-Objekt für das genannte Verzeichnis zurück.
|
open
|
Dir.open( einString ) -> einDir Dir.open( einString ) {| aDir | block }-> nil |
|
Ohne einen Codeblock steht open synonym für Dir.new .
Wenn ein Codeblock angegeben ist, wird einDir als Parameter übergeben. Das Verzeichnis wird am Ende
des Codeblocks geschlossen und Dir.open
gibt nil zurück.
|
pwd
|
Dir.pwd -> einString |
|
Synonym für Dir.getwd .
|
rmdir
|
Dir.rmdir( einString )
-> true |
|
Synonym für Dir.delete .
|
unlink
|
Dir.unlink( einString )
-> true |
|
Synonym für Dir.delete .
|
instance methods
|
close
|
dir.close
-> nil |
|
Schließt den Verzeichnis-Stream.
Jeder weitere Versuch, auf dir zuzugreifen führt zu einem
IOError .
d = Dir.new("testdir") |
d.close |
» |
nil |
|
each
|
dir.each {| | block }-> dir |
|
Ruft den Codeblock für jeden Eintrag in diesem Verzeichnis auf und übergibt den jeweiligen Dateinamen
als Parameter an den Codeblock.
d = Dir.new("testdir")
d.each {|x| puts ("Got " + x) }
|
produces:
Got .
Got ..
Got config.h
Got main.rb
|
|
read
|
dir.read
-> einString oder nil |
|
Liest den nächsten Eintrag aus dir und gibt ihn als String zurück. Gibt nil zurück, wenn
das Ende des Streams erreicht ist.
d = Dir.new("testdir") |
d.read |
» |
"." |
d.read |
» |
".." |
d.read |
» |
"config.h" |
|
rewind
|
dir.rewind
-> dir |
|
Positioniert dir auf den ersten Eintrag zurück.
d = Dir.new("testdir") |
d.read |
» |
"." |
d.rewind |
» |
#<Dir:0x4018d784> |
d.read |
» |
"." |
|
seek
|
dir.seek( einInteger )
-> dir |
|
Sucht einen bestimmten Ort aus dir. einInteger muss ein Wert sein, der von
Dir#tell zurückgegeben wird.
d = Dir.new("testdir") |
d.read |
» |
"." |
i = d.tell |
d.read |
» |
".." |
d.seek(i) |
» |
#<Dir:0x4018d5b8> |
d.read |
» |
".." |
|
tell
|
dir.tell
-> einInteger |
|
Gibt die aktuelle Position in dir zurück. Siehe auch Dir#seek .
d = Dir.new("testdir") |
d.tell |
» |
0 |
d.read |
» |
"." |
d.tell |
» |
12 |
|