LazUtils: Overload FindAllFiles and FindAllDirectories with procedures having StringList as a parameter. Issue #27054, patch from wp.

git-svn-id: trunk@47034 -
This commit is contained in:
juha 2014-11-30 10:58:02 +00:00
parent 8776cceec3
commit 8e7bbbd8f9
2 changed files with 26 additions and 8 deletions

View File

@ -954,13 +954,12 @@ begin
FList := AList; FList := AList;
end; end;
function FindAllFiles(const SearchPath: String; SearchMask: String; procedure FindAllFiles(AList: TStrings; const SearchPath: String;
SearchSubDirs: Boolean): TStringList; SearchMask: String; SearchSubDirs: Boolean);
var var
Searcher: TListFileSearcher; Searcher: TListFileSearcher;
begin begin
Result := TStringList.Create; Searcher := TListFileSearcher.Create(AList);
Searcher := TListFileSearcher.Create(Result);
try try
Searcher.Search(SearchPath, SearchMask, SearchSubDirs); Searcher.Search(SearchPath, SearchMask, SearchSubDirs);
finally finally
@ -968,6 +967,13 @@ begin
end; end;
end; end;
function FindAllFiles(const SearchPath: String; SearchMask: String;
SearchSubDirs: Boolean): TStringList;
begin
Result := TStringList.Create;
FindAllFiles(Result, SearchPath, SearchMask, SearchSubDirs);
end;
{ TListDirectoriesSearcher } { TListDirectoriesSearcher }
constructor TListDirectoriesSearcher.Create(AList: TStrings); constructor TListDirectoriesSearcher.Create(AList: TStrings);
@ -983,11 +989,18 @@ end;
function FindAllDirectories(const SearchPath : string; function FindAllDirectories(const SearchPath : string;
SearchSubDirs: Boolean = True): TStringList; SearchSubDirs: Boolean = True): TStringList;
begin
Result := TStringList.Create;
FindAllDirectories(Result, SearchPath, SearchSubDirs);
end;
procedure FindAllDirectories(AList: TStrings; const SearchPath: String;
SearchSubDirs: Boolean = true);
var var
Searcher :TFileSearcher; Searcher :TFileSearcher;
begin begin
Result := TStringList.Create; Assert(AList <> nil);
Searcher := TListDirectoriesSearcher.Create(Result); Searcher := TListDirectoriesSearcher.Create(AList);
try try
Searcher.Search(SearchPath, AllFilesMask, SearchSubDirs); Searcher.Search(SearchPath, AllFilesMask, SearchSubDirs);
finally finally

View File

@ -202,9 +202,14 @@ type
end; end;
function FindAllFiles(const SearchPath: String; SearchMask: String = ''; function FindAllFiles(const SearchPath: String; SearchMask: String = '';
SearchSubDirs: Boolean = True): TStringList; SearchSubDirs: Boolean = True): TStringList; overload;
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
SearchMask: String = ''; SearchSubDirs: Boolean = True); overload;
function FindAllDirectories(const SearchPath: string; function FindAllDirectories(const SearchPath: string;
SearchSubDirs: Boolean = True): TStringList; SearchSubDirs: Boolean = True): TStringList; overload;
procedure FindAllDirectories(AList: TStrings; const SearchPath: String;
SearchSubDirs: Boolean = true); overload;
// flags for copy // flags for copy
type type