Compter le nombre de fichiers dans un dossier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 23 378 fois - Téléchargée 17 fois


Contenu du snippet

Après pas mal de recherche, je n'ai pas réellement trouvé un code qui me convenait. J'ai donc trouvé une solution pour compter le nombre de fichiers existants (donc avec une extension) dans un dossier. C'est simple et ça peut servir pour certain développeur.

Source / Exemple :


<?php
$files = glob("dossier/*.*");/* $files pour "lister" les fichiers - Mise en place de *.* pour dire que ce dossier contient une extension (par exemple .jpg, .php, etc... */
$compteur = count($files);/* Variable $compteur pour compter (count) les fichiers lister ($files) dans le dossier */
echo "Il y a <font color=#FF0000>$compteur</font>";
if ($compteur > 1) { echo " fichiers dans ce répertoire"; }
else { echo " fichier dans ce répertoire"; }
?>

Conclusion :


Pour conclure, j'espère que les commentaires seront utiles pour les personnes désirant apprendre et/ou comprendre.
Je précise aussi que la condition détermine que s'il y a plus d'un fichier alors "fichier" prendra un "s" (fichiers) sinon il restera écrit comme "fichier".

A voir également

Ajouter un commentaire

Commentaires

mehdi7604
Messages postés
120
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
6 mars 2015
-
Bonjour ,
C'est vraiment utile pour mon site , mais es ce que vous pouvez récupérer les noms de fichiers dans un tableau par exemple ?
( dans un dossier où on ne connais pas les fichiers )
MJ92
Messages postés
186
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2014
-
Pour cela, il y a un code pour récupérer en array, c'est un code totalement différent...

Essayes ceci:

<?php
/* On récupère les fichiers du répertoire dans un tableau $fichiers */
$dir = opendir(".");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
echo $nom.'
';
}
closedir($dir);
?>

Pas essayé, mais logiquement, ça devrait fonctionner...
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13 -
Salut,

Sans vouloir faire le rabat-joie, ça aurait plus sa place dans les snippets de codyx qu'ici...
Sans vouloir te vexer non plus, tous les fichiers n'ont pas d'extension. Certains répertoires peuvent aussi avoir un . dans leur nom.

Exemple :
/home/myself/myscript.php/README

Sur les OS de type Unix/Linux, les répertoires sont des fichiers. Ils sont même éditables avec un éditeur de fichier, c'est dire (c'était juste pour l'anecdote).

Allez, en une ligne :

<?php echo 'Il y a ' . ($nb = count(scandir('/dossier/a/traiter')) - 2) . ' fichier' . (($nb>0) ? 's' : '') . ' dans le dossier'; ?>

Vraiment, c'est un snippet, pas une source...
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13 -
Ah j'viens de voir les commentaires précédents...

Pour récupérer les fichiers dans un tableau, il suffit de lire la doc de PHP, la fonction glob() sert à ça...
MJ92
Messages postés
186
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2014
-
Ou sinon, tu as plus simple, avec des print au lieu de tableau :

<? php
$fichiers = glob('./*');
print_r($fichiers);
?>

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.