Lister un répertoire de dossiers
rivka95
Messages postés
86
Statut
Membre
-
rivka95 Messages postés 86 Statut Membre -
rivka95 Messages postés 86 Statut Membre -
Bonjour,
Je sais que la fonction readdir() permet de lister le contenu d'un dossier à télécharger.
Maintenant je souhaite pouvoir ouvrir un dossier contenant des fichiers et des dossiers qui contiennent eux mêmes des fichiers.
Quelqu'un saurait-il m'aider ???
Merciii !
Lynda
Je sais que la fonction readdir() permet de lister le contenu d'un dossier à télécharger.
Maintenant je souhaite pouvoir ouvrir un dossier contenant des fichiers et des dossiers qui contiennent eux mêmes des fichiers.
Quelqu'un saurait-il m'aider ???
Merciii !
Lynda
5 réponses
-
as tu essayer avec une fonction récursive sur raddir ?
-
Merci pour ta réponse, je découvre la fonction et je cherche en fonction de ce que tu me conseilles mais ne suis pas certaine de bien comprendre. Si tu peux me donner plus de détails...
Ci-après mon code pour plus de clarté :
$dir_nom = 'nom_du_dossier';
$dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas');
$fichier= array();
$dossier= array();
while($element = readdir($dir)) {
if($element != '.' && $element != '..') {
if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
else {$dossier[] = $element;}
}
}
closedir($dir);
if(!empty($fichier)){
sort($fichier);
echo '<div class="style_css">Liste des fichiers '.$dir_nom.' :</div>';
echo "\t\t<ul>\n";
foreach($fichier as $lien) {
echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
}
echo "\t\t</ul>";
}
merci à toi ! -
coucou
# le dossier que tu veux repertorier $dir_nom = '../../ccm/'; $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); # test d'existance $fichier= array(); # tableau des fichiers $dossier= array(); # tableau des dossiers //tant qu'il y a un fichier a lire while($element = readdir($dir)) { # $element c'est le nom du fichier mais il y a aussi le . et .. # donc si c'est differents de . et .. if($element != '.' && $element != '..') { # is_dir permet de savoir si c'est chemin relatif donc en gros # is_dir('a_file.txt') retourne faux # is_dir('..') retourne vrai if (!is_dir($dir_nom.'/'.$element)) { # on sais que c'est un fichier $fichier[] = $element; } else { # on sais que c'est un dossier $dossier[] = $element; } } } # on ferme le dossier d'ouverture closedir($dir); # si le fichiers ne sont pas vides if(!empty($fichier)) { # sort permet de trier les fichiers du plus petit au plus grand sort($fichier); echo '<div class="style_css">Liste des fichiers '.$dir_nom.' :</div>'; echo "\t\t<ul>\n"; foreach($fichier as $lien) { echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n"; } echo "\t\t</ul>"; }
mais je te conseille d'utiliser cette petite fonction si tu veux la listes des fichiers et sous dossier :
function ScanDirectory($Directory){ $MyDirectory = opendir($Directory) or die('Erreur'); while($Entry = @readdir($MyDirectory)) { if(is_dir($Directory.'/'.$Entry)&& $Entry != '.' && $Entry != '..') { echo '<ul>'.$Directory; ScanDirectory($Directory.'/'.$Entry); echo '</ul>'; } else { if($Entry!='.' && $Entry!='..') { echo '<li>'.$Entry.'</li>'; } } } closedir($MyDirectory); }
donc pour l'exemple :
ScanDirectory('adresse du dossier racine');
si tu veux un exemple :)
http://www.nacatiks.com/ccm/p2/
Admire la personne qui te critique , car prisonniere de ca propre jalousie elle ne fais que t admirer -
Merci beaucoup pour ces détails, c'est cool !
Je vais essayer, je te dirai ensuite... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Une question mandolorien, cette fonction permet-elle l'accès aux dossiers et fichiers ou bien affiche t-elle seulement la liste ?
Moi je souhaite pouvoir accéder aux fichiers et dossiers.
Merci