Ordnergröße festlegen bzw. max Ordnergröße

Jerry

Grünschnabel
Hallo,

ich habe auf meiner Homepage die Möglichkeit das User Bilder usw. uploaden können. Jeder User hat dafür ein eigenes "Homeverzeichnis" in dem er sich frei bewegen kann. Die Ordnerstruktur ist folgende:

/users/user/$user_id

Der User kann also in seinem Ordner machen was er will (naja fast *g*), es können Unterordner angelegt werden usw.

Wie das nun mal so ist, räumt keiner auf und so liegt da nach einer weile viel Zeug rum und verschwendet Plattenplatz *grummel*

Nun dachte ich daran den „Homeordner“ mit allen Unterverzeichnissen eingeschlossen auf eine bestimmte Größe festzulegen und dann dem User keinen Upload mehr zu ermöglichen.

Nun dachte ich mir ermittele ich einfach die Gesamtgröße der Dateien in dem Ordner inkl. Unterverzeichnisse. Aber mit den Unterordnern habe ich meine Probleme.

Ich habe versucht die Größe der Files und Verzeichnisse so auszulesen und grafisch anzeigen lassen:

<?php


$path = "./"; //aktueller Ordner
$dp = opendir($path);

echo "<b>Inhalt des Ordners</b><br>";
echo '<hr noshade size="2">';


while ($file = readdir($dp))
{
if (!preg_match('/^\.{1,2}/', $file))
{
$size = filesize("./$file");
echo "$file";
echo " $size Byte <br>";
}
$ordnersize = $ordnersize+$size;
}
echo '<hr noshade size="2">';
echo "Gesammt = $ordnersize Byte";

?>

Dabei passiert folgendes er zeigt brav die Dateien an. Aber die Ordnergrößen stimmen nicht.
Alle Unterverzeichnisse zeigt er falsch an bzw. ermittelt die falschen Werte. Wie bekomme ich das gebacken das er auch bei den Unterordnern die richtige Größe ermittelt ?
 
ok wenn du deine dateiliste hast musst du mit is_dir($file)
abfragen ob es ein unterverzeichnis ist und dort noche eine auflistung machen

wird denke ich mal am besten über eine rekursive function
gemacht :-)
 
Zurück