Taille d'un dossier

Harpeur Messages postés 5 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 2 décembre 2003 - 2 déc. 2003 à 15:42
  - 4 juil. 2005 à 21:48
savez vous comment obtenir la taille d'un dossier à l'aide d'une fonction php

merci d'avance :big)

10 réponses

floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
2 déc. 2003 à 21:52
tout simplement en parcourant le répertoire et calculant la somme des tailles des fichiers.

$taille=0;
$rep=opendir('nomdurepertoire');
while ($file = readdir($rep)) {
if($file != '..' && $file !='.' && $file !=''){
$taille+=filesize($file);}
}
closedir($rep);

la taille du répertoire est stockée dans la variable $taille
cette taille est en octets donc il faut la diviser par 1024 pour obtenir les ko et ainsi de suite

bon courage
0
Harpeur Messages postés 5 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 2 décembre 2003
2 déc. 2003 à 21:59
merci a toi floflotz je vais tester

++ 8-)
0
Taka_s_tiger Messages postés 32 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 5 juillet 2006
1 févr. 2004 à 22:11
moi je cherche quelque chose comme ça mais qui calcule aussi les sous-dossiers

pour avoir la taille en Mo (/par 1048576 exactement) mais pours avoir pas plus de 3 chiffres aprait la vigule ??
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
1 févr. 2004 à 23:10
utilise la fonction number_format !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Taka_s_tiger Messages postés 32 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 5 juillet 2006
1 févr. 2004 à 23:25
ha ok merci ;)

mais pour inclure les sous-dossiers ?
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
1 févr. 2004 à 23:37
ben si t'as bien compris la fonction qu'il y a dessus, c'est tout bête !


function taille_rep ( $rep ) {
$taille=0;
$rep=opendir($rep);
while ($file = readdir($rep)) {
if($file != '..' && $file !='.' && $file !='') {
if (is_dir($file))
$taille+=taille_rep($file);
else
$taille+=filesize($file);
}
}
closedir($rep);
return $taille;

}



et pour l'appeler :

$le_rep="nom_du_repertoire";
$taille=taille_rep($le_rep);
echo "$le_rep occupe $taille octets !";


et voila !
0
coplanacu Messages postés 22 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 17 mai 2006
12 févr. 2004 à 09:49
petite modif pour que ça marche chez moi :

function taille_rep ( $rep ) {
$taille=0;
$r=opendir($rep);
while ($file = readdir($r)) {
if($file != '..' && $file !='.' && $file !='') {
if (is_dir($file))
$taille+=taille_rep($file);
else
popup($file);
$taille+=filesize($rep."/".$file);
}
}
closedir($r);
return $taille;

}
0
coplanacu Messages postés 22 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 17 mai 2006
12 févr. 2004 à 09:51
pardon pour le "popup($file)" qui était là pour le débogage :

function taille_rep ( $rep ) {
$taille=0;
$r=opendir($rep);
while ($file = readdir($r)) {
if($file != '..' && $file !='.' && $file !='') {
if (is_dir($file))
$taille+=taille_rep($file);
else
$taille+=filesize($rep."/".$file);
}
}
closedir($r);
return $taille;

}
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
12 févr. 2004 à 14:55
oui exact !
bien vu coplanacu ! j'avais pas testé mais en effet, il faut le modifier sinon ca ne marche pas !

bon dev à tous !
0
petite correction les gars: le chemin d'acces etait a corriger partout...

function taille_rep ($rep) {

$taille=0;

$r=opendir($rep);

while ($file = readdir($r)) {

if($file != '..' && $file !='.' && $file !='') {

if (is_dir($rep."/".$file))

$taille+=taille_rep($rep."/".$file);

else

$taille+=filesize($rep."/".$file);

}

}

closedir($r);

return $taille;

}

sinon niquel le code merci!
0
Rejoignez-nous