Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Verzeichnis leer???

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema [Erledigt] Verzeichnis leer???.

    [Erledigt] Verzeichnis leer???

    Hi und Hallo,

    gibt es eine elegantere Möglichkteit zu prüfen, ob das Verzeichnis 'test' leer ist?

    $n=opendir("test");
    while ($datei=readdir($n))
    {
    $i++;
    }
    if ($i>2)
    { // NICHT LEER
    }
    else
    { // Jo, leer
    }

    closedir($n);

  • Gast-Avatar
    Ein Gast antwortete
    Danke, das gefällt mir schon viel besser.
    Ciao und nochmals danke an alle... totti

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von totti74
    Ich find´s halt nur sehr umständlich.
    IdR. macht man das so:
    Code:
    $p = '/pfad/zum/verzeichnis';
    if ($d = dir ($p) )
    {
      $p .= '/';
      while ($n = $d->read() )
      {
         if ($n == '.' OR $n == '..') continue; # Pointer überlesen
    # mach was mit $n und $p
      }
      $d->close();
    }
    else
    {
      print "Fehler: $p nicht lesbar";
    }
    Dein Problem kann man so lösen:
    Code:
    $p = '/pfad/zum/verzeichnis';
    $leer = true;
    if ($d = dir ($p) )
    {
      while ($n = $d->read() )
      {
         if ($n == '.' OR $n == '..') continue; # Pointer überlesen
         $leer = false; # es existiert ein Eintrag
         break; # Schleife abbrechen
      }
      $d->close();
      printf ('Verzeichnis %s ist %s leer', $p, (($leer === false) ? 'nicht' : ''));
    }
    else
    {
      print "Fehler: $p nicht lesbar";
    }

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Frage: gibts die Einträge '.' und '..' auch in einer Windowsumgebung?
    (Das Script müsste nämlich auf beiden Systemen laufen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Dann bin ich ja gar nicht so PHP-fremd

    Ich find´s halt nur sehr umständlich.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Stimmt, das hatte ich vergessen.
    mfg RudiS

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Das wird nicht gehen, weil das aktuelle (".") und das übergeordnete ("..") Verzeichnis immer vorhanden sind. Und dann sind wir gleich wieder bei totti74's Lösung

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von RudiS
    Mit PHP 4 müsste es so gehen:
    Leider nicht, da es auch in einem leeren Verzeichnis die Einträge '.' und '..' gibt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Mit PHP 4 müsste es so gehen:
    Code:
    if ($verzeichnis = opendir("."))
     {
      if (!($datei = readdir($verzeichnis)))
       {
        echo "Verzeichnis leer";
       }
     }
    mfg RudiS

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Code:
    if count(scandir('test')) > 2 ....
    Aber erst mit PHP5

    Einen Kommentar schreiben:

Lädt...
X