Ankündigung

Einklappen
Keine Ankündigung bisher.

Verzeichnisse zählen

Einklappen

Neue Werbung 2019

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

  • Verzeichnisse zählen

    hallo!
    ich habe einen ordner zb. "test" in dem es 20 weitere ordner gibt. jetzt sollten die ordner in "test" durchgezählt und die anzahl ausgegeben werden. normale files sollten nicht mitgezählt werden


    danke


  • #2
    ungetestet
    Code:
    $dir = "verzeichnis";
    $od = opendir($dir);
    $x=0;
        while($rd=readdir($od)) {
            if(is_dir($rd)) {
                $x++;
            }
        }
    echo 'Das Verzeichnis '.$dir.' enthält '.$x.' Unterverzeichnisse.';
    ps: 300. eintrag

    Kommentar


    • #3
      Code:
        function count_file($dir)
          {
      
          // Ueberprueft ob das angegebene Verzeichnis existiert
          if(is_dir($dir))
            {
            $afile[directory]=0;
      
            chdir($dir);
            $handle=opendir(".");
            while($file=readdir($handle))
              {
      
              // Handelt es sich bei $file um ein Unterverzeichnis?
              if(is_dir($file) && $file!="." && $file!="..")
                {
      
                // directory um eins erhoehen
                $afile[directory]++;
      
                // rekursiver Aufruf mit aktuellem Verzeichnis
                $y=count_file($file);
      
                // Ergebnisse des rekursiven Aufrufs der Funktion zu
                // directory aufaddieren
                $afile[directory]+=$y[directory];
                }
              }
      
            // Verzeichnisstruktur zurueck gehen
            if(stristr($dir,"../")) chdir($_SERVER["DOCUMENT_ROOT"].substr($_SERVER["PATH_INFO"],0,strrpos($_SERVER["PATH_INFO"],"/")));
            elseif($dir!=".") chdir("../");
      
            closedir($handle);
            }
      
          return $afile;
          }
      
        // Aufruf der Funktion
        $dir="/test";
        $atest=count_file($dir);
        echo"
      Anzahl der Verzeichnisse: ".$atest[directory];
        echo"
      
      ";
      Noch Fragen?

      Kommentar


      • #4
        erstmal danke

        maxi:
        sieht gut aus, geht aber leider nicht. er gibt mir als wert "2" zurück obwohl der odner "test" 8 verzeichnisse enthält!

        harald:
        das war das einzige was ich über google auch gefunden hab :wink:
        ist für meine bedürfnisse aber denk ich etwas "überladen". maxis lösung würde mir da besser gefallen (wenn sie denn funktionieren würde )

        edit: alles gute zum 300. beitrag, maxi

        Kommentar


        • #5
          Code:
          <?php
          $dir = "./";
          $od = opendir($dir);
          $x=0;
              while($rd=readdir($od)) {
                  if($rd!="." && $rd!=".." && is_dir($rd)) {
                      $x++;
                  }
              }
          echo 'Das Verzeichnis '.$dir.' enth&auml;lt '.$x.' Unterverzeichnisse.';
          ?>
          habs noch etwas verändert, aber bei mir funktioniert es einwandfrei

          Kommentar


          • #6
            hi nochmal

            wenn ich das ganze mit
            Code:
            $dir = "./";
            mache (also im gleichen verzeichniss) dann funktioniert es.
            aber warum kann ich das ganze nicht so machen:
            Code:
            $dir = "test"; 
            oder
            $dir = "../test";
            also von "ausserhalb" den ordner "test" durchzählen?

            Kommentar


            • #7
              niemand eine antwort für mich?

              Kommentar


              • #8
                ist die antwort so schwer oder so leicht, weil niemand mehr schreibt!?

                sorry aber ich bräuchte wirklich dringend hilfe.

                Kommentar


                • #9
                  Zitat von timo1
                  aber warum kann ich das ganze nicht so machen:
                  Code:
                  $dir = "test"; 
                  oder
                  $dir = "../test";
                  also von "ausserhalb" den ordner "test" durchzählen?
                  Wer soll wissen, warum Du das nicht kannst?
                  'test' ist kein Pfad. Warum '../test' nicht geht, sagt Dir bestimmt die Fehlermeldung.

                  Kommentar


                  • #10
                    hi
                    es gibt keine fehlermeldung. es wird einfach nur "0" als wert ausgespuckt!

                    nochmal den sachverhalt:

                    das script liegt zb. in
                    Code:
                    /home/meineseite/
                    und soll
                    Code:
                    /home/meineseite/test/
                    duchsuchen/durchzählen!?

                    wie muss dann das
                    Code:
                    $dir = "./";
                    aussehen?

                    danke

                    Kommentar


                    • #11
                      Zitat von timo1
                      und soll
                      Code:
                      /home/meineseite/test/
                      duchsuchen/durchzählen!?

                      wie muss dann das
                      Code:
                      $dir = "./";
                      aussehen?
                      Code:
                      $dir = "/home/meineseite/test";

                      Kommentar


                      • #12
                        das geht eben leider nicht!
                        bekomm als ergebniss immer 0! (der ordner ist natürlich nicht leer!)

                        Kommentar


                        • #13
                          hast meinen code schon ausprobiert? (siehe oben)

                          Kommentar


                          • #14
                            ja.. hatte ich ja auch schon geschrieben:
                            harald:
                            das war das einzige was ich über google auch gefunden hab
                            ist für meine bedürfnisse aber denk ich etwas "überladen". maxis lösung würde mir da besser gefallen (wenn sie denn funktionieren würde )
                            könnte mal jemand "maxis" script bei sich testen und mir sagen ob es funktioniert?

                            Kommentar


                            • #15
                              hab das skript von maxi nun mal ausprobiert.
                              bei mir geht es.
                              es zählt die unterverzeichnisse richtig, jedoch nicht die unterverzeichnisse der unterverzeichnisse.

                              Kommentar

                              Lädt...
                              X