...list all Subdirectories of a Directory?

Author: Martin Schulz

Category: Files

procedure GetSubDirs(const sRootDir: string; slt: TStrings);
var
  
srSearch: TSearchRec;
  sSearchPath: string;
  sltSub: TStrings;
  i: Integer;
begin
  
sltSub := TStringList.Create;
  slt.BeginUpdate;
  try
    
sSearchPath := AddDirSeparator(sRootDir);
    if FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0 then
      repeat
        if 
((srSearch.Attr and faDirectory) = faDirectory) and
          
(srSearch.Name <> '.') and
          
(srSearch.Name <> '..') then
        begin
          
slt.Add(sSearchPath + srSearch.Name);
          sltSub.Add(sSearchPath + srSearch.Name);
        end;
      until (FindNext(srSearch) <> 0);

    FindClose(srSearch);

    for i := 0 to sltSub.Count - 1 do
      
GetSubDirs(sltSub.Strings[i], slt);
  finally
    
slt.EndUpdate;
    FreeAndNil(sltSub);
  end;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base