我想将一个目录里面的所有文件(或一批文件)复制到目标目录,是不是copyfile只能复制单一文件,而且还必须写目标文件名,能不能这样
copyfile('c:\abc\*.*','d:\qqq\')我想实现这样啊。

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      shfos: SHFILEOPSTRUCT;
      sFrom, sTo: string;
    begin
      sFrom := 'D:\RSCB\*.*';
      sTo := 'd:\ZZA\*.*';
      with shfos do begin
        shfos.Wnd := Handle;
        wFunc := FO_COPY;
        shfos.pFrom := PChar(sFrom + #0);
        shfos.pTo := PChar(sTo + #0);
        fAnyOperationsAborted := True;
        shfos.fFlags := FOF_ALLOWUNDO;
      end;
      SHFileOperation(shfos);
    end;
      

  2.   

    SHFileOperation()函数使用一个SHFILEOPSTRUCT结构去实现对文件或目录的拷贝、移动、重命名或删除操作。
    hwnd用来显示操作信息的窗体句柄
    wFunc是操作类型
    pFrom是源文件名指针
    pTo是目的文件名指针
    AnyOperationsAborted如果用户在完成以前终止文件操作,将会返回该值
    fFlags 文件操作标志 
      FOF_ALLOWUNDO 保存undo信息
      

  3.   

    程序好像不能运行,提示SHFILEOPSTRUCT没有声明的标识
      

  4.   

    var
      shfos: SHFILEOPSTRUCT;
      sFrom, sTo: string;