Arne: Dateien zählen (auch in Unterordnern)

Hallo,

habe eine Ordner Struktur mit circa 9000 Word-Dokumenten, Bildern usw.

Eine Funktion zum Zählen von Dateien habe ich schon gefunden:

<?php
$count=0;
$tree = dir("./");
while ($data = $tree->read())
{
$count++;
}
echo "<p>$count Dateien</p>";
?>

Diese Funktion zählt jedoch nur in dem aktuellen Ordner.
Da ich mich nicht wirklich mit PHP auskenne und auch im Internet nichts gefunden habe frage ich hier:
Wie kann ich Dateien in einer kompletten Ordnerstruktur zählen?
Auch die Dateien in den Unterordnern sollen durchsucht werden.
Würde mich über einen Quelltext freuen.

MFG Arne

  1. Hallo Arne,

    Diese Funktion zählt jedoch nur in dem aktuellen Ordner.
    Wie kann ich Dateien in einer kompletten Ordnerstruktur zählen?
    Auch die Dateien in den Unterordnern sollen durchsucht werden.

    passe den Code von http://www.php-faq.de/q/q-code-verzeichnis.html an Deine Bedürfnisse an.

    Freundliche Grüße

    Vinzenz

    1. Hallo Arne,

      Diese Funktion zählt jedoch nur in dem aktuellen Ordner.
      Wie kann ich Dateien in einer kompletten Ordnerstruktur zählen?
      Auch die Dateien in den Unterordnern sollen durchsucht werden.

      passe den Code von http://www.php-faq.de/q/q-code-verzeichnis.html an Deine Bedürfnisse an.

      Freundliche Grüße

      Vinzenz

      Hallo,
      vielen Dank für die Antwort
      habe PHP 4.0 und die Funktion gibt nicht einmal das aus, als was sie beschrieben ist.
      Würde sich vielleicht noch jemand die Mühe machen und mir helfen?
      MFG
      Arne

      1. Hallo,

        [link:http://de3.php.net/manual/de/language.functions.php@title=function] dir_size($d='./'){  
                $size=array('file'=>0,'dir'=>0);  
                $d=([link:http://de3.php.net/manual/de/function.substr.php@title=substr]($d,-1)=='/') ? $d : $d.'/';  
                [link:http://de3.php.net/manual/de/function.clearstatcache.php@title=clearstatcache]();  
                [link:http://de3.php.net/manual/de/language.control-structures.php#control-structures.if@title=if]($dir=@[link:http://de3.php.net/manual/de/function.opendir.php@title=opendir]($d)){  
                        [link:http://de3.php.net/manual/de/control-structures.while.php@title=while](($f=[link:http://de3.php.net/manual/de/function.readdir.php@title=readdir]($dir))!==FALSE)  
                                if([link:http://de3.php.net/manual/de/function.filetype.php@title=filetype]($d.$f)!='dir')  
                                        $size['file']++;  
                                [link:http://de3.php.net/manual/de/control-structures.elseif.php@title=elseif](![link:http://de3.php.net/manual/de/function.in-array.php@title=in_array]($f,array('.','..'))){  
                                        $size['dir']++;  
                                        $t=dir_size($d.$f.'/');  
                                        $size['dir']+=$t['dir'];  
                                        $size['file']+=$t['file'];  
                                }  
                        [link:http://de3.php.net/manual/de/function.closedir.php@title=closedir]($dir);  
                }  
                else [link:http://de3.php.net/manual/de/function.return.php@title=return]('Fehler bei '.$d);  
                return($size);  
        }
        

        ein silbernes Tablett, hast Du selbst?

        Gruß aus Berlin!
        eddi

  2. Hello,

    Diese Funktion zählt jedoch nur in dem aktuellen Ordner.
    Da ich mich nicht wirklich mit PHP auskenne [...]

    Hast Du denn überhaupt schon mal programmiert?
    Hast Du Dich schon mal mit Rekursion beschäftigt?

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau