Lister fichiers et sous-dossiers

totofweb Messages postés 57 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 19 juin 2006 - 15 juin 2003 à 21:50
defkrie Messages postés 435 Date d'inscription vendredi 20 septembre 2002 Statut Membre Dernière intervention 20 novembre 2004 - 16 juin 2003 à 19:45
Bonjour
dans un script, j'ai besoin de lister les fichiers d'un dossier et les fichiers des sous-dossiers (niveau 1 seulement, mais si vous avez une solution pour tous les sous-dossiers, je suis preneur aussi)

Voici ce que j'ai fait :

if ($rep = @opendir("images/smileys/"))
 {
  while ($file = readdir($rep) !== false)
   {
    if (is_dir("images/smileys/".$file."/"))
     {
      while ($file2 = readdir("images/smileys/".$file."/") !== false)
       {
        echo "images/smileys".$file."/".$file2."
\n"
       }
     }
    else
     {
      echo "images/smileys".$file."
\n"
     }
   }
 }


Mais mes tests n'affichent rien. j'ai fais des tests, et apparement, c'est à l'intérieur de "while ($file = readdir($rep) !== false)" que ça coince...

J'aimerai que les fichiers s'affichent avec leur extension.

Merci
Totof :)
[mailto: totofwebcreation@hotmail.com]

4 réponses

totofweb Messages postés 57 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 19 juin 2006
15 juin 2003 à 22:43
[Après avoir fais pleins de tests et d essais, voici le code qui marche : br br table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br if $rep = @opendir images/smileys/ br { br while $file = readdir $rep br { br if is_dir images/smileys/ .$file. / && $file != && $file != . && $file != .. br { br echo images/smileys/ .$file. /< br> \n br if $rep2 = @opendir images/smileys/ .$file. / br { br while $file2 = readdir $rep2 br { br if file_exists images/smileys/ .$file. / .$file2 && $file2 != && $file2 != . && $file2 != .. br { br echo images/smileys/ .$file. / .$file2. < br> \n br } br } br } br closedir $rep2 br } br elseif file_exists $file && $file != && $file != . && $file != .. br { br / $texte = str_replace [ .$dir. Après avoir fais pleins de tests et d essais, voici le code qui marche : br br table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br if $rep = @opendir images/smileys/ br { br while $file = readdir $rep br { br if is_dir images/smileys/ .$file. / && $file != && $file != . && $file != .. br { br echo images/smileys/ .$file. /< br> \n br if $rep2 = @opendir images/smileys/ .$file. / br { br while $file2 = readdir $rep2 br { br if file_exists images/smileys/ .$file. / .$file2 && $file2 != && $file2 != . && $file2 != .. br { br echo images/smileys/ .$file. / .$file2. < br> \n br } br } br } br closedir $rep2 br } br elseif file_exists $file && $file != && $file != . && $file != .. br { br / $texte = str_replace [ .$dir.]", "", $texte);*/
echo "images/smileys/".$file."
\n";
}
}
}
closedir($rep);
</td></tr></table>

Salut
Totof :)
[mailto: totofwebcreation@hotmail.com]
0
totofweb Messages postés 57 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 19 juin 2006
15 juin 2003 à 22:45
Bon, ça a légèrement buggé le forum ! je pense qu'il a pas apprécié que je copie les tabulations !

if ($rep = @opendir("images/smileys/"))
{
while ($file = readdir($rep))
{
if (is_dir("images/smileys/".$file."/") && $file != "" && $file != "." && $file != "..")
{
echo "images/smileys/".$file."/
\n";
if ($rep2 = @opendir("images/smileys/".$file."/"))
{
while ($file2 = readdir($rep2))
{
if (file_exists("images/smileys/".$file."/".$file2) && $file2 != "" && $file2 != "." && $file2 != "..")
{
echo "images/smileys/".$file."/".$file2."
\n";
}
}
}
closedir($rep2);
}
elseif (file_exists($file) && $file != "" && $file != "." && $file != "..")
{
echo "images/smileys/".$file."
\n";
}
}
}
closedir($rep);


Salut
Totof :)
[mailto: totofwebcreation@hotmail.com]
0
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
16 juin 2003 à 10:40
pour lister tous les dossiers, fichiers et sous-dossiers, il faut mieux que tu fasses une fonction récursive...

direction...

http://www.phpcs.com/article.aspx?ID=390

++

Re|V|inc
0
defkrie Messages postés 435 Date d'inscription vendredi 20 septembre 2002 Statut Membre Dernière intervention 20 novembre 2004
16 juin 2003 à 19:45
Si ce nest qu'un sous répertoire je te mache le boulot (pour les explications lignes par ligne dis le moi si tu comprends pas); ce code fais partie d'un ensemble d'un autre code que j'ai crée alors attention à la diffusion...

il montre les repertoire et les extensions

$d=opendir('.');//repertoire cournat
while ($file = readdir($d)) {
if($file != '..' && $file !='.' && $file !=''){
$ext = ereg_replace('^.*[.]([^.]*)$', '\\1', $file);on récupere l'ext

if (is_dir($file)) si cest un répertoire on effectue un sous scan
$e=opendir($file);
echo"$file
";
while ($file = readdir($e)) { // toujours pareil
if($file != '..' && $file !='.' && $file !=''){
$ext = ereg_replace('^.*[.]([^.]*)$', '\\1', $file);

if (is_dir($file)){echo"$file
";}si repertoire on affiche repertoire
elseif {echo"$ext
";} sinon on affiche extension
closedir($e);
}on sort du sous répertoire
elseif {echo"$ext
";}on affiche extension ds repertoire cournat
}
closedir($d);

voila il marche jai faite supprimer quelque truc et reécrit à la main@++++++++++
0
Rejoignez-nous