LCL: Add function FindAllDirectories. Issue #20278, patch from Antônio Galvão

git-svn-id: trunk@32395 -
This commit is contained in:
juha 2011-09-18 08:46:14 +00:00
parent b62f704864
commit 60590c7530
2 changed files with 37 additions and 0 deletions

View File

@ -170,6 +170,7 @@ type
function FindAllFiles(const SearchPath: String; SearchMask: String = '';
SearchSubDirs: Boolean = True): TStringList;
function FindAllDirectories(const SearchPath : string): TStringList;
// file actions
function ReadFileToString(const Filename: string): string;

View File

@ -1304,6 +1304,42 @@ begin
end;
end;
type
{ TListDirectoriesSearcher }
TListDirectoriesSearcher = class(TFileSearcher)
private
FDirectoriesList :TStrings;
protected
procedure DoDirectoryFound; override;
public
constructor Create(AList: TStrings);
end;
constructor TListDirectoriesSearcher.Create(AList: TStrings);
begin
FDirectoriesList := AList;
end;
procedure TListDirectoriesSearcher.DoDirectoryFound;
begin
FDirectoriesList.Add(FileName);
end;
function FindAllDirectories(const SearchPath : string): TStringList;
var
Searcher :TFileSearcher;
begin
Result := TStringList.Create;
Searcher := TListDirectoriesSearcher.Create(Result);
try
Searcher.Search(SearchPath, AllFilesMask, False);
finally
Searcher.Free;
end;
end;
{ TFileIterator }
function TFileIterator.GetFileName: String;