哪位高手给点提示!万分感谢

解决方案 »

  1.   

    FindFileName是文件夹路径,Filetpye 是文件类型,Tstr是一个TStrings...
    procedure FindFile(FindFileName:string; Filetpye : string  ;Tstr:TStrings);
    var
      FSearchRec,
      DSearchRec: TSearchRec;
      FindResult: integer;
      function IsDirNotation(ADirName: String): Boolean;
      begin
        Result := (ADirName = '.') or (ADirName = '..');
      end;
    begin
      if FindFileName[Length(FindFileName)]<> '\' then
        FindFileName:=FindFileName+'\';
      FindResult := FindFirst(FindFileName+'*.*', faDirectory, DSearchRec);
      //tstr.Add(FindFileName+fsearchrec.Name);
      while FindResult = 0 do
      begin
        if ((DSearchRec.Attr and faDirectory) = faDirectory) and not
          IsDirNotation(DSearchRec.Name) then
        begin
          FindFile(FindFileName+DSearchRec.Name,Filetpye,Tstr);
         // tstr.Add(FindFileName+fsearchrec.Name);
        end;
        FindResult := FindNext(DSearchRec);
      end;
      FindResult := FindFirst(FindFileName+'*.*',faAnyFile+faHidden+
                              faSysFile,FSearchRec);
     // tstr.Add(FindFileName+fsearchrec.Name);
      try
        while FindResult = 0 do
        begin
          //ShowMessage(FindFileName+fsearchrec.Name);
          if  Pos(Filetpye,FindFileName+fsearchrec.Name)>0 then
          begin
            tstr.Add(FindFileName+fsearchrec.Name);
          end;
          FindResult := FindNext(FSearchRec);    end;
      finally
        FindClose(FSearchRec);
      end;
      Findclose(DSearchRec);
    end;