搜索文件夹的子目录
procedure FindFile(const filespec: TFileName;extname:String;list:TStringList;sub:boolean);
procedure RFindFile(const folder: TFileName;extname:String);
var
SearchRec: TSearchRec;
begin
if FindFirst(ConCat(folder,extname), faAnyFile , SearchRec)=0 then begin
try
repeat
if (SearchRec.Attr and faDirectory = 0) or
(SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
if fileexists(folder + SearchRec.Name) then
list.Add(folder + SearchRec.Name);
until FindNext(SearchRec) <> 0;
except
FindClose(SearchRec);
raise;
end;
FindClose(SearchRec);
end;
if sub then
begin
if FindFirst(ConCat(folder,extname), faAnyFile
Or faDirectory, SearchRec) = 0 then
begin
try
repeat
if ((SearchRec.Attr and faDirectory) <> 0) and
(SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
RFindFile(folder + SearchRec.Name + '\',extname);
until FindNext(SearchRec) <> 0;
except
FindClose(SearchRec);
raise;
end;
FindClose(SearchRec);
end;
end;
end;
begin
try
RFindFile(ExtractFilePath(filespec),extname);
except
raise;
end;
end;