Page 1 sur 1

nombre de fichier d'un répertoire et de ses sous répertoires

Posté : 16 mai 2012, 09:21
par piotrowski-s
Bonjour à tous, j'essaie de compter le nombre de fichiers d'un répertoires et de ses sous répertoires,
en ce sens j'ai le code qui suit:
<?

    function count_files($dir)

    {

    		$num = 0;

 
    		$dir_handle = opendir($dir);

   			while($entry = readdir($dir_handle))

		    		if(is_file($dir.'/'.$entry))

   							$num++;

    		closedir($dir_handle);

 
    		return $num;

    } 

?>
le soucis avec ce code c'est qu'il compte que les fichiers d'un répertoires dont le nom est connu,
et non pas de ses sous répertoires,

en fait mes utilisateurs auront u_n accès et pourront créer autant de sous répertoires qu'ils le voudront,

seul le nom du répertoire principal sera connu, il sera une variable récupéré via la méthode GET.

quelqu'un aurait il une idée?

d'avance merci.

Re: nombre de fichier d'un répertoire et de ses sous réperto

Posté : 16 mai 2012, 09:55
par Mazarini
<?PHP   
function count_files($dir)
    {
                $num = 0;
                $dir_handle = opendir($dir);
                        while($entry = readdir($dir_handle))
                        { 
                                if(is_file($dir.'/'.$entry))
                                { 
                                                        $num++;
                                } 
                                else
                                {
                                     if ($entry <> '.' and  $entry <> '..') $num +=  count_files($dir.'/'.$entry );
                                } 
                      }
                closedir($dir_handle);
                return $num;
    } 
?>

Re: nombre de fichier d'un répertoire et de ses sous réperto

Posté : 16 mai 2012, 10:30
par piotrowski-s
merci beaucoup j'avais tenté ainsi:
<?php
function count_files($dir) {
   $num = 0;
   $dir_handle = opendir($dir);
   while($entry = readdir($dir_handle)) {
      if(in_array($entry, array('.', '..')))
    	
	     continue; // Passage au tour de boucle suivant
      $path = "$dir/$entry";
      is_dir($path) ? $num += count_files($path) : $num++;
		
   }
   closedir($dir_handle);
   return $num;
}
?><?php echo "(".count_files('../ADMIN/explorer/data/files/'.$_GET['n_doss']).")" ;  ?>

Re: nombre de fichier d'un répertoire et de ses sous réperto

Posté : 16 mai 2012, 10:44
par Yosh
Sinon, il y aussi le fonction http://fr.php.net/glob

Re: nombre de fichier d'un répertoire et de ses sous réperto

Posté : 16 mai 2012, 11:42
par piotrowski-s
voila avec la fonction glob
<?php
function count_files($dir) {
   $num = 0;
   if(!is_dir($dir))
      return is_file($dir) ? 1 : false;
   foreach(glob("$dir/*") AS $entry) {
      if(!in_array($entry, array('..', '.'))
         $num += count_files("$dir/$entry");
   }
   return $num;
}
?>