假如c:\下有文件a.txt,我要在程序中实现把a.txt拷贝到e:\下为b.txt,该如何实现?

解决方案 »

  1.   

    copyfile(pchar('c:\a.txt),pchar(e:\b.txt),false)
      

  2.   

    有3种方法实现文件的拷贝:
    1.调用API函数
    procedure CopyFile(FromFileName,ToFileName:string);
    var
    f1,f2:file;
    Begin
    AssignFile(f1,FromFileName); //指定源文件名
    AssignFile(f2,ToFileName); //指定目标文件名
    Reset(f1);
    Try
    Rewrite(f2);
    Try
    If Lzcopy(TfileRec(f1).handle,TfileRec(f2).Handle)<0
    Then
    Raise EinoutError.creat('文件复制错误')
    Finally
    CloseFile(f2); //关闭 f2
    End;
    Finally
    Until length(sLine)<=0;
    End;
    End; 
    2.文件流
    procedure copyfile;
    var f1,f2: tfilestream ;
    begin
    f1:=Tfilestream.Create(sourcefilename,fmopenread);
    try
    f2:=Tfilestream.Create(targetfilename,fmopenwrite or fmcreate);
    try
    f2.CopyFrom(f1,f1.size);
    finally
    f2.Free;
    end;
    finally
    f1.Free;
    end;
    end;3.利用内存块读写buffer实现
    Procudure FileCopy(const Fromfile,Tofile:string);
    Var
    F1,F2:file;
    NumRead,Numwritten:word;
    Buf:array [1..2048] of char;
    Begin
    AssignFile(F1,Fromfile);
    Reset(F1,1);
    AssignFile(F2,Tofile);
    Rewrite(F2,1);
    Repeat
    BlockRead(F1,buf,sizeof(buf),NumRead);
    BlockWrite(F2,buf,Numread,NumWritten);
    Until (NumRead=0) or (NumWritten<>NumRead);
    CloseFile(F1);
    CloseFile(F2);
    End;
      

  3.   

    顺便讨论一下:adoconnection的connected的属性.
    如果已经有adoquery与之相连,当adoconnection.connected:=false后再
    adoconnection.connected:=true
    会不会影响adoquery原先已有的数据集,当前的记录等等?
    我想是不会的,不知大家的想法,有何理论依据?谢谢
      

  4.   

    API最好了
    CopyFile(‘c:\a.txt’,‘e:\b.txt’,false);根据情况而定了