mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-16 05:00:46 +01:00
LCL: Add function FindAllDirectories. Issue #20278, patch from Antônio Galvão
git-svn-id: trunk@32395 -
This commit is contained in:
parent
b62f704864
commit
60590c7530
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user