| 发表于:2007-09-24 21:50:111楼 得分:0 |
procedure tform1.recursearchfile(currentdir:string;searchfiletype:string;searchresult:tstrings;var number:integer); var i:integer; subdir:tstringlist; searchrec:tsearchrec; begin //第一次调用findfirst和findnext查找符合要求的文件 if (findfirst(currentdir+searchfiletype, faanyfile, searchrec)=0) then begin repeat if currentisvaliddir(searchrec)=0 then begin inc(number); searchresult.add(currentdir+searchrec.name); doonefile(searchrec.name); foutstr.write() end; application.processmessages ; until (findnext(searchrec) <> 0); end; findclose(searchrec); //以下是递归部分,查找各子目录。 subdir:=tstringlist.create; if (findfirst(currentdir+'*.*', fadirectory, searchrec)=0) then begin repeat if currentisvaliddir(searchrec)=1 then begin subdir.add(searchrec.name); end; application.processmessages ; until (findnext(searchrec) <> 0); end; findclose(searchrec); for i:=0 to subdir.count-1 do begin recursearchfile(currentdir+subdir.strings[i]+'\',searchfiletype,searchresult,number); end; | | |
|