delphi 文件搜索,遍历所有子目录

function ListFiles(path: string): TStringList;

var

SearchRec: TSearchRec;

found: integer;

begin

result := TStringList.Create;

found := FindFirst(path + '\' + '*.*', faAnyFile, SearchRec);

if not DirectoryExists(path) then

begin

Result.Clear;

exit;

end;

while found = 0 do

begin

if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') and (SearchRec.Attr <> faDirectory) then

begin

if ExtractFileExt(SearchRec.Name) = '.dfm' then

result.Add(path + '\' + SearchRec.Name);

end

else if (SearchRec.Attr = faDirectory) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then

begin

Result.AddStrings(ListFiles(path + '\' + SearchRec.Name));

end;

found := FindNext(SearchRec);

end;

FindClose(SearchRec);

end;

http://blog.csdn.net/y281252548/article/details/51659208