mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-21 11:49:57 +01:00
- TFileSearcher: implement property PathSeparator.
- and expose both MaskSeparator and PathSeparator in FindAllFiles() - expose PathSeparator in FindAllDirectories. Issue #0034607. git-svn-id: trunk@59687 -
This commit is contained in:
parent
c864848e53
commit
34803af734
@ -626,12 +626,15 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
|
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
|
||||||
SearchMask: String; SearchSubDirs: Boolean; DirAttr: Word);
|
SearchMask: String; SearchSubDirs: Boolean; DirAttr: Word;
|
||||||
|
MaskSeparator: char; PathSeparator: char);
|
||||||
var
|
var
|
||||||
Searcher: TListFileSearcher;
|
Searcher: TListFileSearcher;
|
||||||
begin
|
begin
|
||||||
Searcher := TListFileSearcher.Create(AList);
|
Searcher := TListFileSearcher.Create(AList);
|
||||||
Searcher.DirectoryAttribute := DirAttr;
|
Searcher.DirectoryAttribute := DirAttr;
|
||||||
|
Searcher.MaskSeparator := MaskSeparator;
|
||||||
|
Searcher.PathSeparator := PathSeparator;
|
||||||
try
|
try
|
||||||
Searcher.Search(SearchPath, SearchMask, SearchSubDirs);
|
Searcher.Search(SearchPath, SearchMask, SearchSubDirs);
|
||||||
finally
|
finally
|
||||||
@ -640,10 +643,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function FindAllFiles(const SearchPath: String; SearchMask: String;
|
function FindAllFiles(const SearchPath: String; SearchMask: String;
|
||||||
SearchSubDirs: Boolean; DirAttr: Word): TStringList;
|
SearchSubDirs: Boolean; DirAttr: Word;
|
||||||
|
MaskSeparator: char; PathSeparator: char): TStringList;
|
||||||
begin
|
begin
|
||||||
Result := TStringList.Create;
|
Result := TStringList.Create;
|
||||||
FindAllFiles(Result, SearchPath, SearchMask, SearchSubDirs, DirAttr);
|
FindAllFiles(Result, SearchPath, SearchMask, SearchSubDirs, DirAttr, MaskSeparator, PathSeparator);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TListDirectoriesSearcher }
|
{ TListDirectoriesSearcher }
|
||||||
@ -660,19 +664,20 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function FindAllDirectories(const SearchPath : string;
|
function FindAllDirectories(const SearchPath : string;
|
||||||
SearchSubDirs: Boolean = True): TStringList;
|
SearchSubDirs: Boolean; PathSeparator: char): TStringList;
|
||||||
begin
|
begin
|
||||||
Result := TStringList.Create;
|
Result := TStringList.Create;
|
||||||
FindAllDirectories(Result, SearchPath, SearchSubDirs);
|
FindAllDirectories(Result, SearchPath, SearchSubDirs, PathSeparator);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure FindAllDirectories(AList: TStrings; const SearchPath: String;
|
procedure FindAllDirectories(AList: TStrings; const SearchPath: String;
|
||||||
SearchSubDirs: Boolean = true);
|
SearchSubDirs: Boolean; PathSeparator: char);
|
||||||
var
|
var
|
||||||
Searcher :TFileSearcher;
|
Searcher :TFileSearcher;
|
||||||
begin
|
begin
|
||||||
Assert(AList <> nil);
|
Assert(AList <> nil);
|
||||||
Searcher := TListDirectoriesSearcher.Create(AList);
|
Searcher := TListDirectoriesSearcher.Create(AList);
|
||||||
|
Searcher.PathSeparator := PathSeparator;
|
||||||
try
|
try
|
||||||
Searcher.Search(SearchPath, AllFilesMask, SearchSubDirs);
|
Searcher.Search(SearchPath, AllFilesMask, SearchSubDirs);
|
||||||
finally
|
finally
|
||||||
@ -816,7 +821,7 @@ begin
|
|||||||
SearchDirectories:=TStringList.Create;
|
SearchDirectories:=TStringList.Create;
|
||||||
try
|
try
|
||||||
while ASearchPath<>'' do begin
|
while ASearchPath<>'' do begin
|
||||||
p:=Pos(';',ASearchPath);
|
p:=Pos(FPathSeparator,ASearchPath);
|
||||||
if p<1 then
|
if p<1 then
|
||||||
p:=length(ASearchPath)+1;
|
p:=length(ASearchPath)+1;
|
||||||
Dir:=TrimFilename(LeftStr(ASearchPath,p-1));
|
Dir:=TrimFilename(LeftStr(ASearchPath,p-1));
|
||||||
|
|||||||
@ -120,6 +120,7 @@ type
|
|||||||
TFileSearcher = class(TFileIterator)
|
TFileSearcher = class(TFileIterator)
|
||||||
private
|
private
|
||||||
FMaskSeparator: char;
|
FMaskSeparator: char;
|
||||||
|
FPathSeparator: char;
|
||||||
FFollowSymLink: Boolean;
|
FFollowSymLink: Boolean;
|
||||||
FOnFileFound: TFileFoundEvent;
|
FOnFileFound: TFileFoundEvent;
|
||||||
FOnDirectoryFound: TDirectoryFoundEvent;
|
FOnDirectoryFound: TDirectoryFoundEvent;
|
||||||
@ -137,6 +138,7 @@ type
|
|||||||
ASearchSubDirs: Boolean = True; CaseSensitive: Boolean = False);
|
ASearchSubDirs: Boolean = True; CaseSensitive: Boolean = False);
|
||||||
public
|
public
|
||||||
property MaskSeparator: char read FMaskSeparator write FMaskSeparator;
|
property MaskSeparator: char read FMaskSeparator write FMaskSeparator;
|
||||||
|
property PathSeparator: char read FPathSeparator write FPathSeparator;
|
||||||
property FollowSymLink: Boolean read FFollowSymLink write FFollowSymLink;
|
property FollowSymLink: Boolean read FFollowSymLink write FFollowSymLink;
|
||||||
property FileAttribute: Word read FFileAttribute write FFileAttribute default faAnyfile;
|
property FileAttribute: Word read FFileAttribute write FFileAttribute default faAnyfile;
|
||||||
property DirectoryAttribute: Word read FDirectoryAttribute write FDirectoryAttribute default faDirectory;
|
property DirectoryAttribute: Word read FDirectoryAttribute write FDirectoryAttribute default faDirectory;
|
||||||
@ -168,14 +170,16 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function FindAllFiles(const SearchPath: String; SearchMask: String = '';
|
function FindAllFiles(const SearchPath: String; SearchMask: String = '';
|
||||||
SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory): TStringList; overload;
|
SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory;
|
||||||
|
MaskSeparator: char = ';'; PathSeparator: char = ';'): TStringList; overload;
|
||||||
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
|
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
|
||||||
SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory); overload;
|
SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory;
|
||||||
|
MaskSeparator: char = ';'; PathSeparator: char = ';'); overload;
|
||||||
|
|
||||||
function FindAllDirectories(const SearchPath: string;
|
function FindAllDirectories(const SearchPath: string;
|
||||||
SearchSubDirs: Boolean = True): TStringList; overload;
|
SearchSubDirs: Boolean = True; PathSeparator: char = ';'): TStringList; overload;
|
||||||
procedure FindAllDirectories(AList: TStrings; const SearchPath: String;
|
procedure FindAllDirectories(AList: TStrings; const SearchPath: String;
|
||||||
SearchSubDirs: Boolean = true); overload;
|
SearchSubDirs: Boolean = true; PathSeparator: char = ';'); overload;
|
||||||
|
|
||||||
// flags for copy
|
// flags for copy
|
||||||
type
|
type
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user