<?
error_reporting(E_ALL);
function dir_size($file) // Neue Funktion namens dir_size wird erstellt
{
// Die Variablen $anzordner, sowie $anzdateien können in der Funktion bearbeitet // werden
global $anzordner;
global $anzdateien;
$groesse = 0;
echo "<img src='http://filemanager.lima-city.de/images/icons/dir.gif'> <b>". $file ."</b><br>";
$to_open = "../html/";
$to_open .= $file; // Pfad des zuöffnenden Ordners
// Erzeugt ein Handle auf das Verzeichnis ../html/
$ordner2 = opendir($to_open);
// Diese Schleife läuft solange, bis $file2 den Wert false besitzt
while(false !== ($file2 = readdir($ordner2)))
{
if($file2 != ".")
{
if($file2 != "..")
{
$file3 = $file;
$file3 .= "/";
$file3 .= $file2;
// Wenn das File vom Typ "dir" ist, dann soll es dessen
// Grösse auslesen
if(filetype($file3) == "dir")
{
print("-> ");
// Grösse des Ordners wird zu $groesse addiert
$groesse += subdir_size($file3);
// Anzahl Ordner ($anzordner) wird inkrementiert
$anzordner++;
print("<br>");
}
}
}
}
rewinddir($ordner2); // Setzt den Zeiger wieder an den Anfang
// Diese Schleife läuft solange, bis $file den Wert false besitzt
while(false !== ($file2 = readdir($ordner2)))
{
if($file2 != ".")
{
if($file2 != "..")
{
$file3 = $file;
$file3 .= "/";
$file3 .= $file2;
if(filetype($file3) == "file")
{
echo "-> <img src='http://filemanager.lima-city.de/images/icons/file.gif'> ". $file2 ."<br>";
// Die Dateigrösse wird zu $groesse addiert
$groesse += filesize($file3);
// Anzahl der Dateien wird um 1 erhöht
$anzdateien++;
}
}
}
}
// Eine Linie kennzeichnet, dass der Ordner bei dieser Stelle endet
print("-------------------<br><br>");
// gibt die Grösse des Ordners zurück (in Byte)
return $groesse;
}
// -----------------------------------------------
// Dies ist, bis auf wenige kleine Änderungen, welche die Ausgabe der
// Datei-/Ordnernamen betreffen, dieselbe Funktion wie dir_size($file);.
// Deshalb empfinde ich es als nicht notwendig, diesen Teil des Codes zu
// kommentieren.
function subdir_size($file)
{
global $anzordner;
global $anzdateien;
$groesse = 0;
echo "<img src='http://filemanager.lima-city.de/images/icons/dir.gif'> <b>". $file ."</b><br>";
$to_open = "../html/";
$to_open .= $file;
$ordner2 = opendir($to_open);
while(false !== ($file2 = readdir($ordner2)))
{
if($file2 != ".")
{
if($file2 != "..")
{
$file3 = $file;
$file3 .= "/";
$file3 .= $file2;
if(filetype($file3) == "dir")
{
print("-> ");
$groesse += subdir_size($file3);
$anzordner++;
print("<br>");
}
}
}
}
rewinddir($ordner2);
while(false !== ($file2 = readdir($ordner2)))
{
if($file2 != ".")
{
if($file2 != "..")
{
$file3 = $file;
$file3 .= "/";
$file3 .= $file2;
if(filetype($file3) == "file")
{
echo "->-> <img src='http://filemanager.lima-city.de/images/icons/file.gif'> ". $file2 ."<br>";
$groesse += filesize($file3);
$anzdateien++;
}
}
}
}
print("<br>");
return $groesse;
}
// ---------------------------------------
$anzdateien = 0;
$anzordner = 0;
$groesse = 0;
// Erzeugt ein Handle auf das Verzeichnis ../html/
$ordner = opendir("../html");
$counter = 0;
// ---------------------------
// Die Schleife läuft solange, bis $file den Wert false besitzt
while(false !== ($file = readdir($ordner))) //
{
if($file != ".")
{
if($file != "..")
{
// Wenn die Datei vom Typ "dir" ist, soll die Ordnergrösse
// ermittelt werden und zu $groesse addiert werden
if(filetype($file) == "dir")
{
$groesse += dir_size($file);
// Die Anzahl der Ordner wird um 1 erhöht
$anzordner++;
}
}
}
}
// --------------------------
print("<br><br>");
// Setzt den Zeiger an den Anfang des Verzeichnisses
rewinddir($ordner);
// --------------------------
// Die Schleife läuft solange, bis $file den Wert false besitzt
while(false !== ($file = readdir($ordner)))
{
if($file != ".")
{
if($file != "..")
{
// Wenn die Datei vom Typ "file" ist, soll die Dateigrösse
// zu $groesse addiert werden
if(filetype($file) == "file")
{
echo $file ."<br>";
$groesse += filesize($file);
// Anzahl der Dateien wird um 1 erhöht
$anzdateien++;
}
}
}
}
// Rechnet bytes in megabytes um
$mbyte = $groesse / 1024 / 1024;
// Rundet das Ergebnis auf 2 Nachkommastellen
$gerundet = round($mbyte,2);
// Die Anzahl der Ordner und Dateien, sowie die Grösse des belegten
// Speicherplatzes in megabyte werden ausgegeben
print("<br>Grösse: <font face='Verdana' color='red'>". $gerundet ."</font> MByte");
print("<br>Anzahl Ordner (+ Unterordner): <font color='red'>". $anzordner ."</font>
<br>
Anzahl Dateien (gesamt): <font color='red'>". $anzdateien ."</font>");
?>