Dave: Frage zu opendir(DIR, $dir) Funktion

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

  1. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. »»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

    1. Hallo

      Ah okay. Ja das werde ich so lösen.

      Herzlichen Dank und Gruss

      Dave

    2. 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