Page 1 sur 1

ignorer sous dossier dans un dossier pour comptage

Posté : 02 juin 2011, 21:26
par sax76
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

Re: ignorer sous dossier dans un dossier pour comptage

Posté : 02 juin 2011, 23:23
par AB
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);

Re: ignorer sous dossier dans un dossier pour comptage

Posté : 03 juin 2011, 15:28
par Lamzouille
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

Re: ignorer sous dossier dans un dossier pour comptage

Posté : 03 juin 2011, 18:03
par AB
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.

Re: ignorer sous dossier dans un dossier pour comptage

Posté : 03 juin 2011, 22:50
par sax76
Ca fonctionne merci :)