Bonjour, j'essaie de lister le contenu d'un répertoire incluant les sous répertoires avec Gnat.Directries_Operations.
Le contenu de mon répertoire est le suivant :
bin
Documentations
obj
src/lib/
src/main.adb
src/lib/aethers.ads
src/lib/aether.adb
J'ai écrit une procédure récursive qui semble de pas pouvoir descendre de plus d'un niveau de répertoire.
Dans cette procédure je recueille les noms des fichiers dans un Containers.vectors.vector.
Code ada : 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 -- procedure Parse(Path : in string ;Units_Vector : in out Units_Vectors.Vector) is Name : String(1..256); Last : Natural; Project_Dir : Dir_Type; begin Open(Project_Dir, Path); Text_Io.Put_Line("Oppening : " & Path); loop Read(Project_Dir, Name, Last); if Last /= 0 then if (Name(1..Last) /= ".") and (Name(1..Last) /= "..") then if Is_Directory(Name(1..Last)) then Text_Io.Put_Line("Enterring sub directory : " & Name(1..Last)); Parse(Name(1..Last), Units_Vector); else Text_Io.Put_Line("Add unit : " & Name(1..Last)); end if; end if; else exit; end if; end loop; Close(Project_Dir); end Parse;
Voici ce que j'obtiens :
Donc lib n'est pas visité, y a t il une soluce ?Oppening : ./
Enterring sub directory : bin
Oppening : bin
Add unit : Aether
Enterring sub directory : src
Oppening : src
Add unit : main.adb
Add unit : lib
Enterring sub directory : obj
Oppening : obj
Enterring sub directory : Documentations
Oppening : Documentations
Merci pour vos réponses.
Partager