Bonjour,

Auriez-vous un code qui permette d'afficher l'arborescence d'un répertoire (avec ses sous-dossiers et fichiers correspondants)?

Merci de votre aide.

Actuellement j'ai un code mais qui se limite au niveau des premiers dossiers et fichiers rencontrés (voir ci-dessous).
Je voudrais pouvoir décortiquer entièrement le répertoire depuis la racine jusqu'aux derniers fichiers (ou feuilles).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
$liste=listRep ("_textesdeloi/", "");
$taille=sizeof($liste);
for ($i=0;$i<$taille;$i++){
echo $liste[$i]."<b>";
}
 
 
 function listRep ($d, $typefichier){
 
   //Initialisation des variables
  $result; //tableau de resultat
  $cptdossier=0; //cpt pour le tab des dossiers
  $cptfichier=0; //cpt pour le tab des fichiers
   $tab_fichier; //tableau de fichiers
   $tab_dossier; //tableau des dossiers
   $estfichier; //booleen pour savoir si c'est un fichier
   $estdossier; //booleen pour savoir si c'est un dossier
 
   // test si c'est un repertoire
   if (!(is_dir($d))){
     print("Ce n'est pas un repertoire");
     exit ;
   }
 
  //ouverture du dossier
  $handle=opendir($d);
 
   //lecture du dossier
   while ($fichier = readdir($handle)){
     if ($fichier != "." && $fichier != ".."){
       //Determination du type
       $estfichier = is_file($d.$fichier);
       $estdossier = is_dir($d.$fichier);
 
       //recup des éléments dans les tableaux respectifs
       if ($estdossier==true){
         $tab_dossier[$cptdossier] = $fichier;
         $cptdossier++;
         next;
       }
       if ($estfichier==true){
         $tab_fichier[$cptfichier] = $fichier;
         $cptfichier++;
         next;
       }
     }
   }
   //mise en place des resultats
     // si dossier
   if ($typefichier=="dossier"){
     $result = $tab_dossier;
   }
     //si fichier
   if ($typefichier=="fichier"){
     $result = $tab_fichier;
   }
     //tous les types
   if (($typefichier=="all")||($typefichier=="")){
     for ($i=0; $i<$cptdossier+1; $i++){
       $result[$i] = $tab_dossier[$i];
     }
     for ($j=0; $j<$cptfichier+1; $j++){
       $i = $cptdossier+$j+2;
       $result[$i] = $tab_fichier[$j];
     }
   }else{
     //extension spécifiées
     $i=0;
     for ($j=0; $j<$cptfichier+1; $j++){
       $extension = explode(".", $tab_fichier[$j]);
       $valmax = count($extension)-1;
       if ($typefichier==$extension[$valmax]){
         $result[$i] = $tab_fichier[$j];
         $i++;
       }
     }
   }
   echo "test<br><br>";
   //fermeture du dossier
   closedir($handle);
   return ($result);
}