在FINDFIRST,FINDNEXT的循环中就可以做到。

解决方案 »

  1.   

    看Windows SDK帮助的COPYFILE例子
      

  2.   

    procedure TForm1.GetAllFiles(MainPath: String);
    var
      nI: Integer;
      SearchRec: TSearchRec;
      sFileName: String;
      sMainpath: String;
    begin  if MainPath[Length(MainPath)]='\' then  sMainpath:=MainPath
      else sMainpath:=MainPath+'\';
      FindFirst(sMainPath+'*.*',faAnyFile,SearchRec);
      if SearchRec.Name<>'' then
      begin
        sFileName:=UpperCase(SearchRec.Name);
        if (Pos('A',sFileName)=1) then
          listbox1.Items.Add(sMainPath+SearchRec.Name);
        if (SearchRec.Attr and faDirectory)=1 then
          if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
            GetAllFiles(sMainPath+SearchRec.Name);
        while  (FindNext(SearchRec)=0) do
        begin
          sFileName:=UpperCase(SearchRec.Name);
          if (Pos('A',sFileName)=1) then
            listbox1.items.Add(sMainPath+SearchRec.Name);
          if (SearchRec.Attr and faDirectory)=faDirectory then
            if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
              GetAllFiles(sMainPath+SearchRec.Name);
        end;
      end;end;