Freakie: Überprüfen, ob ein Verzeichnis existiert

Hi.
Wie kann man überprüfen, ob ein bestimmtes Verzeichnis schon existiert oder noch angelegt werden muss?
Es wäre nett, wenn mir jemand helfen könnte.
Danke.

  1. Moin,

    Wie kann man überprüfen, ob ein bestimmtes Verzeichnis schon existiert oder noch angelegt werden muss?
    Es wäre nett, wenn mir jemand helfen könnte.

    Die PHP-Doku ist dein Freund: http://www.php.net/manual/de/function.is-dir.php.

    BTW: Ist was mit dem Forum kaputt? Der meint meine Mailadresse henryk@ploetzli.ch "scheint nicht korrekt zu sein."

    --
    Henryk Plötz
    Grüße aus Berlin

    1. Danke. Jetzt läuft's.
      Stoße in mienem super-verbuggten Skript allerdings schon auf ein neues Problem:
      <code>
      ..        $i=0;
      ..        $votenr=5;
      ..        while ($i < $votenr)
      ..     {
      68:         fopen("vote$i.dat", "r");
      69:     $votingid[$i] = fgets("vote$i.dat", 255);
      70:     fclose("vote$i.dat");
      71:     echo "$votingid[$i]<BR>";
      72:     $i++;
      73:       }
      </code>
      Fehlermeldung beim Ausführen:

      Warning: Supplied argument is not a valid File-Handle resource in /home/freaknfantasy/poll/poll.php on line 69

      Warning: Supplied argument is not a valid File-Handle resource in /home/freaknfantasy/poll/poll.php on line 70

      Woran kann das liegen?

      1. Hallo!

        68:      fopen("vote$i.dat", "r");
        69:     $votingid[$i] = fgets("vote$i.dat", 255);
        70:     fclose("vote$i.dat");

        Warning: Supplied argument is not a valid File-Handle resource in /home/freaknfantasy/poll/poll.php on line 69

        Warning: Supplied argument is not a valid File-Handle resource in /home/freaknfantasy/poll/poll.php on line 70

        So sollte es funktionieren:

        $fh = fopen("vote$i.dat", "r");
        $votingid[$i] = fgets($fh, 255);
        fclose($fh);

        MfG, André Laugks

        1. Hallo!

          68:      fopen("vote$i.dat", "r");
          69:     $votingid[$i] = fgets("vote$i.dat", 255);
          70:     fclose("vote$i.dat");

          Warning: Supplied argument is not a valid File-Handle resource in /home/freaknfantasy/poll/poll.php on line 69

          Warning: Supplied argument is not a valid File-Handle resource in /home/freaknfantasy/poll/poll.php on line 70

          So sollte es funktionieren:

          $fh = fopen("vote$i.dat", "r");
          $votingid[$i] = fgets($fh, 255);
          fclose($fh);

          MfG, André Laugks

          -_-°
          ^^ Immerhin läuft's jetzt ^^

    2. Hallo!

      Die PHP-Doku ist dein Freund: http://www.php.net/manual/de/function.is-dir.php.

      Ich habe letztens bemerkt, daß ein file_exists() auch funktioniert.

      $dir = "/pfad/zum/verzeichnis/" . $datei;
      if(file_exists($dir))
        {

      }

      Wenn Datei keinen Inhalt hatte, bekam ich trotzdem ein true.

      Hast Du eine Erklärung dafür?

      MfG, André Laugks

      1. Moin,

        Ich habe letztens bemerkt, daß ein file_exists() auch funktioniert.

        Nein, nicht dafür. file_exists() prüft (wie der Name schon sagt) ob die angegebene Datei existiert. Der OP wollte aber wissen ob die Datei existiert _und_ ein Verzeichnis ist.

        Wenn Datei keinen Inhalt hatte, bekam ich trotzdem ein true.
        Hast Du eine Erklärung dafür?

        Naja, auch wenn sie keinen Inhalt hat, so existiert sie doch immerhin, gell?

        --
        Henryk Plötz
        Grüße aus Berlin

        1. Hallo!

          Nein, nicht dafür. file_exists() prüft (wie der Name schon sagt) ob die angegebene Datei existiert. Der OP wollte aber wissen ob die Datei existiert _und_ ein Verzeichnis ist.

          Ja klar, daß habe ich schon verstanden.

          Wenn Datei keinen Inhalt hatte, bekam ich trotzdem ein true.
          Hast Du eine Erklärung dafür?

          Naja, auch wenn sie keinen Inhalt hat, so existiert sie doch immerhin, gell?

          Upps, ich meinte natürlich nicht die Datei hat kein Inhalt, sondern die Variable $datei.

          $datei wurde nicht übergeben bzw. die Variable ist leer oder Leerstring.

          $pfad = "/pfad/zum/verzeichnis/" . $datei; // --> /pfad/zum/verzeichnis/
          if(file_exists($pfad))
           {

          }
          So bekomme ich auch ein TRUE geliefert.

          MfG, André Laugks

  2. Hi,

    bei mir funktioniert es z.B. so:

    $sDir="verzeichnis";
    if (file_exists($Dir)) {
    //  Tu was mit diesem Verzeichnis
    }
    else {
    // Erzeuge das Verzeichnis erstmal
      mkdir($sDir);
    }

    // Weiß nicht genau, aber in Befehlsbeschreibung von
    // file_exist & Co. steht, man soll es machen
    clearstatcache();

    Ich bekomme keine Warnings, arbeite mit PHP4.

    Gruß
    TomCat

    1. PS: Vielleicht hilft Dir dies:

      Ich habe in dem Verzeichnis, in dem die Unterverzeichnisse sind immer ein Dummy-Verzeichnis, also eins, daß gar nicht für die Anwendung ist und auch immer überlesen wird. In jedes Unterverzeichnis lege ich immer noch eine Dummy-Datei.

      Ich mache das, damit opendir und Konsorten nicht mit errors auf die Nase fallen, was mir dann den Seitenaufbau wegen der Fehlermeldungen kaputt macht.

      Gruß
      TomCat