要复制的是数据库Table文件,代码越简单越好阿。顺便问问SHFileOperation的功能与用法,给个实例吧!
谢谢。

解决方案 »

  1.   

    最简单的方法使用copyfile函数
      

  2.   

    //1.1拷贝目录的递归辅助函数:DoCopyDir
    function DoCopyDir(sDirName:String;sToDirName:String):Boolean;
    var
      F: TSearchRec;
      //hFindFile:Cardinal;
      t,tfile:String;
      sCurDir:String[255];
      FindFileData:WIN32_FIND_DATA;
    begin
    //先保存当前目录
        sCurDir:=GetCurrentDir;
        ChDir(sDirName);
        F.FindHandle:=FindFirstFile('*.*',FindFileData);
        if F.FindHandle<>INVALID_HANDLE_VALUE then
        begin
          if not DirectoryExists(sToDirName) then    //如果目录不存在
             ForceDirectories(sToDirName);           //强迫建立目录
            repeat
                tfile:=FindFileData.cFileName;
                if (tfile='.') or (tfile='..') then
                   Continue;                          //跳过两个目录标识
                if FindFileData.dwFileAttributes=FILE_ATTRIBUTE_DIRECTORY then
                begin
                    t:=sToDirName+'\'+tfile;
                    if not DirectoryExists(t) then
                       ForceDirectories(t);
                    if sDirName[Length(sDirName)]<>'\' then
                       DoCopyDir(sDirName+'\'+tfile,t)
                    else
                       DoCopyDir(sDirName+tfile,sToDirName+tfile);
                end
                else
                begin
                    t:=sToDirName+'\'+tFile;
                    CopyFile(PChar(tfile),PChar(t),false);
                end;
            until FindNextFile(F.FindHandle,FindFileData)=false;
               FindClose(F);
            end
            else
            begin
                ChDir(sCurDir);
                result:=false;
                exit;
            end;
            //回到原来的目录下
            ChDir(sCurDir);
            result:=true;
        end;//---- 1.2拷贝目录的函数:CopyDir
    function CopyDir(sDirName:String;sToDirName:string):Boolean;
    begin
       if Length(sDirName)<=0 then
          exit;
            //拷贝...
       Result:=DoCopyDir(sDirName,sToDirName);
    end;
      

  3.   

    unit SAVET;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,SHELLAPI;type
      TForm1 = class(TForm)
        SaveDialog1: TSaveDialog;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    var
      F:TSHFILEOPSTRUCT;
    begin
      SaveDialog1.FileName:=extractfilepath(application.exename)+'PZCCK1.DBF';
      IF SaveDialog1.Execute THEN
      BEGIN
        F.Wnd:=Handle;
        F.wFunc:=fo_COPY;
        F.pfrom:=PCHAR(extractfilepath(application.exename)+'PZCCK1.DBF');
        f.pto:=PCHAR(SaveDialog1.FileName);
        f.fFlags:=FOF_ALLOWUNDO OR FOF_RENAMEONCOLLISION or FOF_SIMPLEPROGRESS;
        IF SHFILEOPERATION(F)<>0 THEN
        SHOWMESSAGE('文件拷贝失败!');
      END;
     HALT;
    end;end.
      

  4.   

    copyfile
    算了............还是没有希望