[PHP] Poids total d'un dossier
Résolu
Randal
Messages postés
88
Date d'inscription
Statut
Membre
Dernière intervention
-
dijxdream -
dijxdream -
Bonjour,
j'aimerais savoir comment faire pour voir le poids total d'un dossier en Mo.
J'aimerais ainsi faire quelque chose de ce genre: Il y a 23.19 Mo utilisé.
Si ça pourrait afficher aussi plus prècis comme j'ai mis ce dessus, ce serait
encore mieux. Merci d'avance pour votre future réponse. Bonne soirée.
j'aimerais savoir comment faire pour voir le poids total d'un dossier en Mo.
J'aimerais ainsi faire quelque chose de ce genre: Il y a 23.19 Mo utilisé.
Si ça pourrait afficher aussi plus prècis comme j'ai mis ce dessus, ce serait
encore mieux. Merci d'avance pour votre future réponse. Bonne soirée.
A voir également:
- [PHP] Poids total d'un dossier
- Dossier appdata - Guide
- Réduire le poids d'un pdf - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Total uninstall - Télécharger - Divers Utilitaires
8 réponses
ça te convient ?
<?php
function foldersize($path) {
$total_size = 0;
$files = scandir($path);
foreach($files as $t) {
if (is_dir($t)) {
if ($t<>"." && $t<>"..") {
$size = foldersize($path . "/" . $t);
$total_size += $size;
}
}
else {
$size = filesize($path . "/" . $t);
$total_size += $size;
}
}
return $total_size;
}
function format_size($size , $round) {
//Size must be bytes!
$sizes = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
for ($i=0; $size > 1024 && $i < count($sizes) - 1; $i++) $size /= 1024;
return round($size,$round).$sizes[$i];
}
$total_size = foldersize("Mondossier");
echo format_size ($total_size, 2 )
?>
<?php
function foldersize($path) {
$total_size = 0;
$files = scandir($path);
foreach($files as $t) {
if (is_dir($t)) {
if ($t<>"." && $t<>"..") {
$size = foldersize($path . "/" . $t);
$total_size += $size;
}
}
else {
$size = filesize($path . "/" . $t);
$total_size += $size;
}
}
return $total_size;
}
function format_size($size , $round) {
//Size must be bytes!
$sizes = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
for ($i=0; $size > 1024 && $i < count($sizes) - 1; $i++) $size /= 1024;
return round($size,$round).$sizes[$i];
}
$total_size = foldersize("Mondossier");
echo format_size ($total_size, 2 )
?>
Voila bon courage,
<?php
function foldersize($path) {
$total_size = 0;
$files = scandir($path);
foreach($files as $t) {
if (is_dir($t)) {
if ($t<>"." && $t<>"..") {
$size = foldersize($path . "/" . $t);
$total_size += $size;
}
}
else {
$size = filesize($path . "/" . $t);
$total_size += $size;
}
}
return $total_size;
}
echo foldersize("mondossier");
?>
<?php
function foldersize($path) {
$total_size = 0;
$files = scandir($path);
foreach($files as $t) {
if (is_dir($t)) {
if ($t<>"." && $t<>"..") {
$size = foldersize($path . "/" . $t);
$total_size += $size;
}
}
else {
$size = filesize($path . "/" . $t);
$total_size += $size;
}
}
return $total_size;
}
echo foldersize("mondossier");
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Attention s'il y a d'autre repetroire en sous-arborescence il ne les calcule pas ;-) ... ce n'est donc pas full friendly comme technique ...
Pour le formatage de la taille
class Sizer { public static function size($file) { return $this->format(filesize($file)); } public static function format($size) { list($sized, $num) = $this->sizeRec($size); $e = array('o', 'Ko', 'Mo', 'Go', 'To', 'XXL'); $sized = round($sized, 3); return array($size, $sized.$e[$num], $num); } private static function sizeRec($size, $num = 0) { if ($size > 1024) return $this->sizeRec($size / 1024, ++$num); return array($size, $num); } } list($size, $format, $exp) = Sizer::size('/path/vers/mon/fichier'); echo $format;