| 发表于:2008-01-11 16:02:05 楼主 |
procedure findfiles(apath, afile: string; strings1: tstrings); var findresult: integer; fsearchrec, dsearchrec: tsearchrec; function isdirnotation(adirname: string): boolean; begin result := ((adirname = '.') or (adirname = '..') or (adirname = 'rcm_email_file') or (adirname = 'odl_encrypt')); end; begin if apath[length(apath)] <> '' then apath := apath + ''; // 在根目录中查找指定文件 findresult := findfirst(apath+'\' + afile, faanyfile + fahidden +fasysfile + fareadonly, fsearchrec); try while findresult = 0 do begin strings1.add(apath+'\' + fsearchrec.name); findresult := findnext(fsearchrec); // 查找下一个指定文件 end; //进入当前目录的子目录继续查找 findresult := findfirst(apath+'\' + '*.*', fadirectory, dsearchrec); while findresult = 0 do begin if ((dsearchrec.attr and fadirectory) = fadirectory) and not isdirnotation(dsearchrec.name) then begin findfiles(apath+'\' + dsearchrec.name, afile,strings1); //递归调用findfiles函数 end; findresult := findnext(dsearchrec); end; finally findclose(fsearchrec); end; 这段代码是写的在指定目录下遍历所有文件的吧,我不是做delphi的,有些不太明白。中间这段 begin result := ((adirname = '.') or (adirname = '..') or (adirname = 'rcm_email_file') or (adirname = 'odl_encrypt')); end;有什么作用? 是不是排除'rcm_email_file'与'odl_encrypt'这两个目录(rcm_email_file,'odl_encrypt'是是两个文件夹名),不查找这两个文件夹里的文件? |
|
|
|
|