to chechy(我爱洁洁) 
可以直接拷贝吗?还是需要用读写文件的方式来解决?

解决方案 »

  1.   

    给你一段从源目录拷贝所有文件到目的路径的源代码
    DELPHI6.0上编译通过procedure TForm1.Button1Click(Sender: TObject);
    Var
      SearchRec: TSearchRec;
    begin
      if FindFirst(EditSourcePath.Text+'\*.*', faAnyFile, SearchRec)<>0 then
        Raise exception.Create('failed');
      Screen.Cursor:= crHourGlass;
      try
      Repeat
        if CopyFile(pchar(EditSourcePath.Text+'\'+SearchRec.name),
          pchar(EditDestPath.Text+'\'+SearchRec.name),False)=false then
          Raise exception.Create('拷贝文件失败。');
      until findNext(SearchRec)<>0  ;
      Finally
        FindClose(SearchRec);
        Screen.Cursor:= crDefault;
      end;
    end;
      

  2.   

    用多线程应该可以解决,如果是只是只在执行那边,这边在等待,是主程序没有响应其它事件,可以考虑application.progressmessage
      

  3.   

    procedure atob(a,b:tfilename);
    var
      FromF, ToF: file;
      NumRead, NumWritten: Integer;
      Buf: array[1..2048] of Char;
    begin
      if not fileexists(a) then exit;
          AssignFile(FromF,a);
          Reset(FromF, 1);
          AssignFile(ToF, b); { Open output file }
          Rewrite(ToF, 1); { Record size = 1 }
          repeat
            BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
            BlockWrite(ToF, Buf, NumRead, NumWritten);
          until (NumRead = 0) or (NumWritten <> NumRead);
            CloseFile(FromF);
            CloseFile(ToF);end;
    只要你的两个文件名的参数没写错,这个函数就可以搞定。
    试试吧。
      

  4.   

    我需要做的是批量的大文件的处理,还需要考虑整个处理的效率。是不是涉及到I/O
    模型的选择呢?copyfile使用的又是哪一种I/O模型呢?象ahuige(灰不遛秋) 说的那样拷贝的速度会不会很慢?