Ver Mensaje Individual
  #2  
Antiguo 12-08-2004
perrogrun perrogrun is offline
Miembro
 
Registrado: ene 2004
Ubicación: Fuengirola
Posts: 41
Reputación: 0
perrogrun Va por buen camino
Ya está solucionado,
Código Delphi [-]
function CopiaTodo(Origen,Destino : String) :
  LongInt;
  var
    F : TShFileOpStruct;
    sOrigen, sDestino : String;
  begin 
    Result := 0;
    sOrigen := Origen + #0;
    sDestino := Destino + #0;
 
    with F do 
    begin
      Wnd   := Application.Handle;
      wFunc := FO_COPY;
      pFrom := @sOrigen[1];
      pTo   := @sDestino[1];
      fFlags :=   FOF_MULTIDESTFILES or FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR or FOF_NOERRORUI;
    end;
    Result := ShFileOperation(F);
    if Result<>0 then
        begin
            form2.Memo1.Lines.Add('');
            form2.Memo1.Lines.Add('ERROR AL COPIAR EL FICHERO ' + origen +' A ' + destino );
            form2.Memo1.Lines.add('ESTE ERROR PUEDE SER PRODUCIDO PORQUE EL ARCHIVO');
            form2.Memo1.Lines.Add('ESTÁ EN USO CUANDO SE ESTÁ COPIANDO');
            form2.Memo1.Lines.Add('');
            form2.Memo1.Lines.Add('');
        end;
end;
La cuestión era poner FOF_NOERRORUI en las flags para que no aparezca el error, luego para enterarme que ha habido un error lo comunico en un memo ya que si Result es diferente de 0 es que hay un error al copiar.

Bueno, la verdad es que esparaba un poco más de ayuda por vuestra pero...
... la vida es así.

Si quereis más información sobre SHFILEOPSTRUCT aquí teneis el link
Responder Con Cita