procedure FindFile(AFileName:String;ADir:String;AResults:TStrings);
var //递归查找文件,并将找到的文件放到一个strings里
sr: TSearchRec;
FileAttrs: Integer;
begin
FileAttrs:=faDirectory;
if FileExists(ADir+AFileName) then AResults.Add(ADir+AFileName);
if FindFirst(ADir+'*.*', FileAttrs, sr) = 0 then
begin
repeat
if ((sr.Attr and FileAttrs)=FileAttrs)and(sr.Name<>'.')and(sr.Name<>'..') then
begin
//Application.ProcessMessages; //如果需要非诸塞方式,可以在此处控制
FindFile(AFileName,ADir+sr.Name+'/',AResults);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FindFile('autoexec.bat','c:/',ListBox1.items);//查找文件例子,第二个参数是目录,记住最后一定要有'/',比如'c:/temp/','d:/test/test1/'
end;