ignorer sous dossier dans un dossier pour comptage

Eléphant du PHP | 133 Messages

02 juin 2011, 21:26

bonjour
voila j'ai un /dossier : DOSSIER1
j'ai un code qui affiche le poids du dossier , mais j'ai un sous-dossier MINI dans mon DOSSIER1
existe t'il une comme simple pour lui dire d'ignorer le sous-dossier dans le comptage du poids du dossier DOSSIER1 ?
j'utilise cette commande
$nomFichier = "DOSSIER1" ;
$size += filesize($nomFichier);

echo $size ;
Cdt

ViPHP
AB
ViPHP | 5818 Messages

02 juin 2011, 23:23

Directement comme ça je vois pas.
Je pense qu'il faudrait lister tes fichiers inclus dans DOSSIER1 et faire l'addition en ignorant les sous-dossiers.
function HumanSize($Bytes)
{
  $Type = array("", "K", "M", "G", "T", "P", "E", "Z", "Y");
  $Index = 0;
  while($Bytes >= 1024)
  {
    $Bytes /= 1024;
    $Index++;
  }
  
  $Bytes = round($Bytes,3);// arrondi à 3
  return("".$Bytes." ".$Type[$Index]."o");
}


$tab = 0;
$compteur=0;

$files = new DirectoryIterator("DOSSIER1");

foreach ($files as $file)
if (!$file->isDir())
	{
		$tab += $file->getSize();
                $compteur++;
	}

echo $compteur.' fichiers et '.$tab.' octets ou '.HumanSize($tab);

Lamzouille
Invité n'ayant pas de compte PHPfrance

03 juin 2011, 15:28

tu peux faire une boucle qui teste pour chaque élément de ton dossier, si c'est un dossier il ignore si c'est un fichier alors il ajoute la taille de ce dernier et passe au suivant

ViPHP
AB
ViPHP | 5818 Messages

03 juin 2011, 18:03

tu peux faire une boucle qui teste pour chaque élément de ton dossier, si c'est un dossier il ignore si c'est un fichier alors il ajoute la taille de ce dernier et passe au suivant
C'est exactement ce que fait le code donné plus haut :wink:

J'ai juste ajouté une fonction "HumanSize" pour transformer les octets en valeur plus causante.

Eléphant du PHP | 133 Messages

03 juin 2011, 22:50

Ca fonctionne merci :)