Bonjour à tous,
Mon projet est de lister une arborescence complète d'un répertoire donné.
Jusqu'ici, j'arrive bien à récupérer dans un tableau les dossiers, sous-dossier et fichier correspondant.
Seulement, je n'arrives pas à faire le tri "à la manière de windows" ; c'est-à-dire, les dossiers par ordre alphabétique en premier et les fichiers par ordre alphabétique en second.
Voici mon code pour être plus clair :
Voici le resultat que cela me donne (un ordre alphabétique tout simple) :
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 $dir = 'document_repository'; $ritit = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST); $r = array(); foreach ($ritit as $splFileInfo) { if($splFileInfo->isDir()){ $path = array($splFileInfo->getFilename() => array()); }else{ $path = array($splFileInfo->getFilename()); } for ($depth = $ritit->getDepth() - 1; $depth >= 0; $depth--) { $path = array($ritit->getSubIterator($depth)->current()->getFilename() => $path); } $r = array_merge_recursive($r, $path); } echo '<pre>'; print_r($r); echo '</pre>';
mais j'aimerais avoir ce résultat (ordre alphabétique avec les dossiers en premier :
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 Array ( [0] => atest.docx [dossier1] => Array ( [0] => feuille_de_style.css [1] => htest.xlsx [2] => logo.png [3] => test.jnt ) [dossier2] => Array ( [0] => dtest.pptx [1] => HE ingerables.pdf [2] => jtest.docx [sous-dossier2] => Array ( [0] => dtest.jnt [1] => logo.png [2] => qlogo.jpg [3] => test.zip [4] => zfeuille_de_style.css ) [3] => test.xlsx [4] => wtest.txt ) [1] => HE ingerables.pdf [2] => htest.txt [3] => logo.jpg [4] => mtest.pptx [5] => test.zip )
Une personne pour m'aider?
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 Array ( [0] => atest.docx [dossier1] => Array ( [0] => feuille_de_style.css [1] => htest.xlsx [2] => logo.png [3] => test.jnt ) [dossier2] => Array ( [sous-dossier2] => Array ( [0] => dtest.jnt [1] => logo.png [2] => qlogo.jpg [3] => test.zip [4] => zfeuille_de_style.css ) [0] => dtest.pptx [1] => HE ingerables.pdf [2] => jtest.docx [3] => test.xlsx [4] => wtest.txt ) [1] => HE ingerables.pdf [2] => htest.txt [3] => logo.jpg [4] => mtest.pptx [5] => test.zip )
Merci
Partager