PHP: Calculer la taille d'un répertoire

 - by admin

2 Petites fonctions pour calculer la taille d’un répertoire en PHP:

[php]
// Pour calculer la taille d’un répertoire de façon récursive, résultat en Bytes
function TailleRepertoire($DirectoryPath) {
$Size = 0;
$Dir = opendir($DirectoryPath);

if (!$Dir)
return -1;

while (($File = readdir($Dir)) !== false) {

// On ne prends pas les points
if ($File[0] == ‘.’) continue;

// Sous-dossier ou la taille des fichiers
if (is_dir($DirectoryPath . $File))
$Size += TailleRepertoire($DirectoryPath . $File . DIRECTORY_SEPARATOR);
else
$Size += filesize($DirectoryPath . $File);
}

closedir($Dir);

return $Size;
}

function TaillePourHumais($size) {
// Pour afficher la taille en Ko, Mo, Go…
// Adaptation: http://www.php.net/manual/en/function.filesize.php

$mod = 1024;

$units = explode(‘ ‘,’B KB MB GB TB PB’);
for ($i = 0; $size > $mod; $i++) {
$size /= $mod;
}

return round($size, 2) . ‘ ‘ . $units[$i];
}

$TailleEnBytes = TailleRepertoire(‘data/’);
echo $TailleEnBytes;
echo "<br />";
echo TaillePourHumais($TailleEnBytes);
[/php]

Résultat:

50996647
48.63 MB

Leave a comment