Ver Mensaje Individual
  #2  
Antiguo 22-03-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Reputación: 19
radenf Va por buen camino
Retomo el hilo para comentar mis aventuras.
He modificado un código que utiliza ShellApi, ya que el método CopyFile no funciona al parecer con archivos .abs, que es el siguiente:

var
Fos : TSHFileOpStruct;
Buf : array[0..4096] of char;
p : pchar;
sDest : string;

procedure TBackup.Button1Click(Sender: TObject);
begin
ABSRegistros.Connected :=False;
FillChar(Buf, sizeof(Buf), #0) ;
p := @buf;
p := StrECopy(p,'C:\Windows\Regsdata\Registros.abs');
sDest := 'e:\';
FillChar(Fos, sizeof(Fos), #0) ;
with Fos do
begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := @Buf;
pTo := @sDest;
fFlags := 0;
end;
if ((SHFileOperation(Fos) <> 0) or (Fos.fAnyOperationsAborted <> false)) then
Message1.MessageDlg('Error al copiar el archivo',mtWarning, [mbOK], 0);
end;

Con la primera línea desconecto la base de datos.
Luego al ejecutar el código me genera los siguientes errores:
- A pesar que el destino es la Unidad E, copia el archivo Registros.abs en la carpeta del ejecutable.
- Crea un archivo sin extensión cuyo nombre son tres caracteres cualquiera y no el nombre y extensión del archivo.

¿Puede alguien por favor ayudarme a corregir el código ?
¿ Es posible con un edit definir la carpeta de destino ?

De antemano muchas gracias
Responder Con Cita