Frage zu opendir(DIR, $dir) Funktion
Dave
- perl
Hallo zusammen
Schnell eine Frage zur Funktion "opendir(DIR, $dir)". Bei der Ausgabe eines Verzeichnises wird ja vor der Ausgabe immer auch "." und ".." mit ausgegeben. Lässt sich das irgend wie filtern oder abschalten?
Danke und Gruss
Dave
Hi,
Schnell eine Frage zur Funktion "opendir(DIR, $dir)". Bei der Ausgabe eines Verzeichnises wird ja vor der Ausgabe immer auch "." und ".." mit ausgegeben. Lässt sich das irgend wie filtern oder abschalten?
nein, aber abfragen.
Cheatah
»»Lässt sich das irgend wie filtern oder abschalten?
Hi, du kannst ja den Dateiname bzw. Verzeichnisnamen abfragen und wenn der der . oder .. ist dann wird das halt ignoriert.
$name = basename($dir);
if($name != "." || $name != "..") { dann mache was auch immer }
mfg
Knusperklumpen
Hallo
Ah okay. Ja das werde ich so lösen.
Herzlichen Dank und Gruss
Dave
Hallo Dave,
$name = basename($dir);
if($name != "." || $name != "..") { dann mache was auch immer }
das ist nicht gerade sehr perlisch[tm]
ich würde so etwas empfehlen:
opendir(DIR, "/path/to/dir") || die "couldn't open /path/to/dir: $!";
my @dateien = grep { not /^\.\.?$/} readdir(DIR);
closedir(DIR)
die grep funktion is für solche Dinge sehr nützlich.
Man könnte auch alle *.jpe?g, *.png, *.gif Dateien mit einem regulären Ausdruck filtern:
my @dateien = grep { -f "/path/to/dir/$_" and /\.(jp?eg|gif|png|bmp)$/i } readdir(DIR);
Gruß,
Benne