Verzeichnisse und DateienPerl

Bis jetzt konnten wir Test bezüglich eines Files machen (Test für Dateien); zum Beispiel können wir testen, ob ein Verzeichnis vorliegt mit -d Name. Doch wie kommen wir überhaupt an Datei- bzw. Verzeichnisnamen, wenn man sie nicht unbedingt per Hand eingeben will?

SeitenanfangSeitenendeDirectoryhandle

Also Perl kann auch die Elemente eines Verzeichnisses - das sind Unterverzeichnisse und Dateien - lesen. Man hat dafür ein sog. Directoryhandle eingeführt. Ähnlich zu einem Filehandle liefert es den Inhalt eines Verzeichnisses - statt der Zeilen eben die Datei- und Unterverzeichnisnamen. Man öffnet ein Directoryhandle mit opendir(DIRHANDLE,Verzeichnisname). Dabei ist DIRHANDLE das Directoryhandle mit dem man liest und Verzeichnisname ein String mit dem Nmaen des zu durchsuchenden Verzeichnisses. Mit closedir(DIRHANDLE) schließt man das Verzeichnishandle wieder:

opendir(C_PROGRAMS,"C:/programs");

while ($name=readdir(C_PROGRAMS)) {
  print "$name\n";
}

closedir(C_PROGRAMS);

Das Ergebnis von readdir kann auch einem Array zugewiesen werden:

opendir(PROG,"C:/programming");
  @inhalt=readdir(PROG);
closedir(PROG);

print join("\n",@inhalt);

liefert

.
..
C++
J
Java
Javaapplets
Javascripts
Perl

SeitenanfangSeitenendeVerzeichniswechsel

Ein Perlprogramm wird aus einem Verzeichnis aus aufgerufen. Das Arbeitsverzeichnis dieses Perlprozess ist dann dieses Verzeichnis. Mit chdir() kann das Arbeitsverzeichnis gewechselt werden:

print "Verzeichniswechsel: >>";
chomp($verz=<STDIN>);

chdir($verz);

SeitenanfangSeitenendeErstellen, löschen, umbenennen ...

Mit dem Befehl mkdir() wird ein neues Verzeichnis erzeugt:

mkdir("temp"); # erzeugt das Verzeichnis temp im akt. Verzeichnis

Gelöscht wird mit rmdir():

rmdir("temp");
  # loescht das Verzeichnis temp im
  # akt. Verzeichnis, falls es leer ist

Eine Datei löscht man mit unlink():

unlink("readme.txt")
  # loescht die Datei readme.txt im akt. Verzeichnis

Umbennen geschieht durch rename("alter Name","neuer Name"):

rename("readme.txt", "liesmich.txt");
  # umbenennen einer Datei

Seitenanfang FehlermeldungHilfe zur Fehlermeldung © 2001-2003 Email an den AutorPerl, Lehrstuhl Mathe II, Uni Bayreuth