Конференция "WinAPI" » TSHFileOpStruct - как сделать копирование видимым? [D7, WinXP]
 
  • Hero © (15.08.08 08:37) [0]
    Мне нужно сделать копирование файлов так, чтобы его видел пользователь т.е. с прогрессбаром. вот функция:
    Function TForm1.WinCopy(_From,_toFolder:string):boolean;
    var
     OpStruc: TSHFileOpStruct;
     frombuf, tobuf: Array [0..128] of Char;

     Function ExtractDirFromDir(dir:string):string;
     var n:integer;
     begin
       for n:=length(dir)-1 downto 1 do
         if (dir[n] = '\') or (dir[n] = '/') then break;
       result:=copy(dir,n+1,length(dir)-n);
     end;
    Begin
    if not directoryExists(_toFolder) then exit;
    if DirectoryExists(_From) then
    begin
      if Length(_From) < 4 then exit;
      if _toFolder[length(_toFolder)] <> '\' then _toFolder:=_toFolder+'\';
      _toFolder:=_toFolder+ ExtractDirFromDir(_from);
      if not DirectoryExists(_toFolder) then createDir(_toFolder);
      if _From[length(_From)] <> '\' then _From:=_From+'\';
      _From:=_From+'*.*';
    end else
      if not FileExists(_From) then exit;

    FillChar( frombuf, Sizeof(frombuf), 0 );
    FillChar( tobuf, Sizeof(tobuf), 0 );
    StrPCopy( frombuf, _from );
    StrPCopy( tobuf, _toFolder );
    With OpStruc DO Begin
     Wnd:= Handle;
     wFunc:= FO_COPY;
     pFrom:= @frombuf;
     pTo:=@tobuf;
     fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION or FOF_ALLOWUNDO ;
     fAnyOperationsAborted:= False;
     hNameMappings:= Nil;
     lpszProgressTitle:= Nil;  //Может тут что писать надо? Что?
    end;
    Result:=ShFileOperation( OpStruc )=0;
    end;


    Спасибо.
  • Hero © (15.08.08 08:41) [1]
    Упс. Извиняюсь уже понял.
 
Конференция "WinAPI" » TSHFileOpStruct - как сделать копирование видимым? [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]