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

解决方案 »

  1.   

    参考program   Project1; {$APPTYPE   CONSOLE} uses 
        Windows,System, 
        SysUtils; procedure   GetFile(PathName:   string); 
    var 
        FindData:   TWin32FindData; 
        hf:THandle; 
        b:boolean; 
        tmpstr:string; 
        tempFolder:string; 
        str:string; 
    begin 
        hf   :=   Windows.FindFirstFile(PChar(PathName   +   '\*.* '),   FindData); 
        if   hf   =   INVALID_HANDLE_VALUE   then   exit; 
        b   :=   true; 
        while   b   do 
        begin 
            if   (FindData.dwFileAttributes   and   FILE_ATTRIBUTE_DIRECTORY)   =   0   then 
            begin 
                str:=string(FindData.cFileName); 
                if   (Pos(   '.txt ',   str   )   >   0   )  )   then
                begin 
                    WriteLn(   str   ); 
                end; 
            end 
            else 
            begin 
                tmpstr   :=   FindData.cFileName   +   ' '; 
                if   (tmpstr   <>   '. ')   and   (tmpstr   <>   '.. ')   then 
                begin 
                    tempFolder:=tempFolder+string(FindData.cFileName)+ '\ '; 
                    GetFile(PathName   +   '\ '   +   FindData.cFileName); 
                end; 
            end; 
            b   :=   windows.FindNextFile(hf,FindData); 
        end; 
    end; var     
        I:   Integer; 
        Drive:   PChar; 
    begin 
        for   I   :=   0   to   31   do 
        begin 
            if   Boolean(GetLogicalDrives   and   (1   SHL   I))   then 
            begin 
                Drive:=   PChar(CHR(65   +   I)   +   ':\ '); 
                writeln(   '正在查找 '+Drive+ '盘文件 '   ); 
                GetFile(   Drive   );     //对d:\123文件夹下的所有文件进行查找 
                writeln(   Drive+ '盘文件查找完毕 '   ); 
            end; 
        end; 
    end.
      

  2.   

    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;
      

  3.   

    把函数粘贴到你的项目里面,使用button的onclick触发,文件保存到数据库可以使用tblobfield,需要看什么样的数据库
      

  4.   

    还是不知道该怎么用~~·
    procedure TForm2.BitBtn1Click(Sender: TObject);
    var
      FindData: TWin32FindData;
      hf:THandle;
      b:boolean;
      tmpstr:string;
      tempFolder:string;
      str:string;
    begin
      hf := Windows.FindFirstFile(PChar(PathName + '\*.* '), FindData);
      if hf = INVALID_HANDLE_VALUE then exit;
      b := true;
      while b do
      begin
      if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
      begin
      str:=string(FindData.cFileName);
      if (Pos( '.txt ', str ) > 0 ) ) then
      begin
      WriteLn( str );
      end;
      end
      else
      begin
      tmpstr := FindData.cFileName + ' ';
      if (tmpstr <> '. ') and (tmpstr <> '.. ') then
      begin
      tempFolder:=tempFolder+string(FindData.cFileName)+ '\ ';
      GetFile(PathName + '\ ' + FindData.cFileName);
      end;
      end;
      b := windows.FindNextFile(hf,FindData);
      end;
    end;
    这样  FILEname和cfilename 都显示错误~~~师傅 能不能给个详细点的  啊  O(∩_∩)O谢谢!!!
      

  5.   

    遍历磁盘,搜索指定的文件如doc,搜索到文件后如何按照磁盘目录创建文件夹,并将搜索到的文件复制到文件夹内,换言之,就是说复制磁盘中指定的类型文件,把文件夹一起复制,不要其他的文件,只保留这一种文件,但是保留文件夹!!