Author: Jonas Bilinkevicius How to get a list of all subdirectories in the current folder Answer: Enumerating all folders in a subfolder/ directory: 1 2 procedure EnumFolders(root: string; folders: TStrings); 3 4 procedure Enum(dir: string); 5 var 6 SR: TSearchRec; 7 ret: Integer; 8 begin 9 if dir[length(dir)] <> '\' then 10 dir := dir + '\'; 11 ret := FindFirst(dir + '*.*', faDirectory, SR); 12 if ret = 0 then 13 try 14 repeat 15 if ((SR.Attr and faDirectory) < > 0) and (SR.Name <> '.') and 16 (SR.Name <> '..') then 17 begin 18 folders.add(dir + SR.Name); 19 Enum(dir + SR.Name); 20 end; 21 ret := FindNext(SR); 22 until 23 ret <> 0; 24 finally 25 FindClose(SR) 26 end; 27 end; 28 29 begin 30 Folders.Clear; 31 if root < > emptyStr then 32 Enum(root); 33 end; 34 35 procedure TForm1.Button1Click(Sender: TObject); 36 begin 37 EnumFolders('C:\windows', memo1.lines); 38 end;