Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Problmas con SHFILEOPSTRUCT (https://www.clubdelphi.com/foros/showthread.php?t=12914)

perrogrun 30-07-2004 16:52:50

Problmas con SHFILEOPSTRUCT
 
Hola amigos, estoy haciendo un programita para hacer copias de seguridad y para copiar los archivos utilizo SHFILEOPSTRUCT, todo funciona bien, pero cuando hay algún archivo que no ha creado el usuario que corre el programa o hay un archivo en uso me dice que es imposible copiarlo y se me para el programa, mi pregunta es si hay alguna manera de que si encuentra este problema, salte ese archivo y continúe con el siguiente.

Un saludo a todos y gracias.

perrogrun 12-08-2004 20:26:06

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


La franja horaria es GMT +2. Ahora son las 15:50:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi