把一个文件夹备份到一个指定的目录下,怎么做????????谢谢

解决方案 »

  1.   

    SHFileOperation来COPY目录_____________________
    http://lysoft.7u7.net
      

  2.   

    var
      OpStruc: TSHFileOpStruct;
      FromBuf, ToBuf: Array [0..128] of Char;
    begin
      FillChar( FromBuf, Sizeof(FromBuf), 0 );
      FillChar( ToBuf, Sizeof(ToBuf), 0 );
      StrPCopy( FromBuf, Pchar(Edit1.Text) ); //edit1的内容是源目录
      StrPCopy( ToBuf, Pchar(Edit2.Text) );  //edit2是目的目录
      // 设置OpStruc
      with OpStruc do
      begin
        Wnd:= Handle;
        wFunc:= FO_COPY;
        pFrom:= @FromBuf;
        pTo := @ToBuf ;
        fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
        fAnyOperationsAborted:= False;
        hNameMappings:= nil;
        lpszProgressTitle:=nil;
      end;
      if SHFileOperation( OpStruc ) = 0 then  //复制成功返回值为0
      MessageBox(Handle,'复制完毕。' , '信息' ,Mb_Ok+Mb_IconInformation);
    end;
      

  3.   

    可以用windows自带的api实现:
    uses shellapi,filectrl;procedure TForm1.Button1Click(Sender: TObject);
    var
     F:TShFileOpStruct;
     sourceName,
     TargetName:string; 
    Begin
      With f DO
      Begin
        Wnd:= Handle;
        wFunc:= FO_COPY; 
        pFrom:=PChar('D:\share\taylor\PDF\output'+#0#0);
        pTo:=PChar(Edit2.Text+#0#0);
        fFlags:=FOF_NOCONFIRMATION;
        fAnyOperationsAborted:= False;
        hNameMappings:= Nil;
        lpszProgressTitle:= Nil;
      end;
      ShFileOperation( f);
      showmessage('ok');
    end;
      

  4.   

    ShFileOperation操作不支持长文件名,拷贝文件后变成了8.3格式